天天看點

工作——自動化測試中用到的SQL server查詢語句的格式調整

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) %将十六進制數轉換為大整形,其實很多類型的轉換都可以用到這個語句。

繼續閱讀