SQL SERVER 中的日期與時間函數
1. 目前系統日期、時間
SELECT GETDATE()
2. DATEADD 在向指定日期加上一段時間的基礎上,傳回新的 DATETIME 值
例如:向日期加上2天
SELECT DATEADD(DAY,2,'2004-10-15') --傳回:2004-10-17 00:00:00.000
--目前字段值、加2天、減2天、加2個月、減2個月、加2年、減2年
SELECT CREATETIME 字段日期,DATEADD("DAY",2,CREATETIME) 加2天,DATEADD("DAY",-2,CREATETIME) 減2天,DATEADD("M",2,CREATETIME) 加2個月,DATEADD("M",-2,CREATETIME) 減2個月,DATEADD("YEAR",2,CREATETIME) 加2年,DATEADD("YEAR",-2,CREATETIME) 減2年 FROM JT_BIZ_LECTURE;
--某一字段(日期型)與目前時間作差
SELECT CREATETIME,GETDATE() 目前時間,DATEDIFF(DAY,GETDATE(),CREATETIME) 天數 FROM JT_BIZ_LECTURE;
3. DATEDIFF 傳回跨兩個指定日期的日期和時間邊界數。
SELECT DATEDIFF(DAY,'2004-09-01','2004-09-18') --傳回:17
4. DATEPART 傳回代表指定日期的指定日期部分的整數。
SELECT DATEPART(MONTH, '2004-10-15') --傳回 10
5. DATENAME 傳回代表指定日期的指定日期部分的字元串
SELECT DATENAME(WEEKDAY, '2004-10-15') --傳回:星期五
6. DAY(), MONTH(),YEAR() --可以與DATEPART對照一下
SELECT 目前日期=CONVERT(VARCHAR(10),GETDATE(),120)
,目前時間=CONVERT(VARCHAR(8),GETDATE(),114)
SELECT DATENAME(DW,'2004-10-15')
SELECT 本年第多少周=DATENAME(WEEK,'2004-10-15')
,今天是周幾=DATENAME(WEEKDAY,'2004-10-15')
函數 參數/功能
GETDATE( ) 傳回系統目前的日期與時間
DATEDIFF (INTERVAL,DATE1,DATE2) 以INTERVAL 指定的方式,傳回DATE2 與DATE1兩個日期之間的內插補點 DATE2-DATE1
DATEADD (INTERVAL,NUMBER,DATE) 以INTERVAL指定的方式,加上NUMBER之後的日期
DATEPART (INTERVAL,DATE) 傳回日期DATE中,INTERVAL指定部分所對應的整數值
DATENAME (INTERVAL,DATE) 傳回日期DATE中,INTERVAL指定部分所對應的字元串名稱
參數 INTERVAL的設定值如下:
值 縮 寫(SQL SERVER) (ACCESS 和 ASP) 說明
YEAR YY YYYY 年 1753 ~ 9999
QUARTER QQ Q 季 1 ~ 4
MONTH MM M 月1 ~ 12
DAY OF YEAR DY Y 一年的日數,一年中的第幾日 1-366
DAY DD D 日,1-31
WEEKDAY DW W 一周的日數,一周中的第幾日 1-7
WEEK WK WW 周,一年中的第幾周 0 ~ 51
HOUR HH H 時0 ~ 23
MINUTE MI N 分鐘0 ~ 59
SECOND SS S 秒 0 ~ 59
MILLISECOND MS - 毫秒 0 ~ 999
ACCESS 和 ASP 中用DATE()和NOW()取得系統日期時間;其中DATEDIFF,DATEADD,DATEPART也同是能用于ACCESS和ASP中,這些函數的用法也類似
舉例:
1.GETDATE() 用于SQL SERVER :SELECT GETDATE()
2.DATEDIFF('S','2005-07-20','2005-7-25 22:56:32')傳回值為 514592 秒
DATEDIFF('D','2005-07-20','2005-7-25 22:56:32')傳回值為 5 天
3.DATEPART('W','2005-7-25 22:56:32')傳回值為 2 即星期一(周日為1,周六為7)
DATEPART('D','2005-7-25 22:56:32')傳回值為 25即25号
DATEPART('Y','2005-7-25 22:56:32')傳回值為 206即這一年中第206天
DATEPART('YYYY','2005-7-25 22:56:32')傳回值為 2005即2005年
以上為記錄的筆記,不記得是哪裡找到的,如有侵權,請告知,謝謝
下面為自己使用的一些小東西
select convert(bigint,0x0000000002) %将十六進制數轉換為大整形,其實很多類型的轉換都可以用到這個語句。