2017年7月27日 星期四

C# x 日期變化


//改變日期format

string startStr = start.ToString("yyyy-MM-dd HH:mm:ss");

DateTime dt = Convert.ToDateTime(startStr);//轉回DateTime

P.S format 大小寫意義不同: MM=month, mm=Minutes, HH=24hours, hh=12hours

//日期時間相加減

DateTime start = Convert.ToDateTime("2011-04-25 15:50:39");

DateTime end = Convert.ToDateTime("2011-05-02 15:50:39");

TimeSpan ts = end.subtract(start); //兩時間天數相減

double dayCount = ts.Days; //相距天數

//目前時間

DateTime dt = DateTime.Now;

//本周周一

DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d")));

//本周周日

DateTime endWeek = startWeek.AddDays(6);

//本月月初

DateTime startMonth = dt.AddDays(1 - dt.Day);

//本月月末

DateTime endMonth = startMonth.AddMonths(1).AddDays(-1);



參考資料 : http://bluemuta38.pixnet.net/blog/post/61533149-%E5%90%84%E7%A8%AE%E6%97%A5%E6%9C%9F%E6%99%82%E9%96%93%E8%A8%88%E7%AE%97

2017年7月20日 星期四

TSQL x 建立資料表的建議


重點 :
  1. ID為GUID是T1資料表的Primary Key,指定為非叢集索引
  2. a1,a2不會重複的欄位設定為叢集索引


CREATE TABLE [dbo].[T1]
(
[ID_Key] uniqueidentifier DEFAULT NEWSEQUENTIALID() NOT NULL,
[a1] [nvarchar](10)   NOT NULL,
[a2] [nvarchar](10)   NOT NULL,
[a3] [nvarchar](10)   NULL,
[a4] [datetime]          NULL,
[a5] [datetime]          NULL,
[a6] [decimal](12, 4) NULL,
[a7] [nvarchar](10)   NULL,
[a8] [nvarchar](10)   NULL,
[a9] [decimal](12, 4) NULL,
CONSTRAINT [PK_T1] PRIMARY KEY NONCLUSTERED
(
     ID_Key ASC
))
CREATE CLUSTERED INDEX CL01 ON T1(a1,a2 asc)



參考資料 :
http://blog.darkthread.net/post-2016-01-29-guid-as-pk-on-db.aspx