sqlServer 時間格式化


轉自:http://blog.csdn.net/cherish1forever/article/details/49022165

1.獲取系統當前時間

[sql] view plain copy
  1. select convert(varchar(10),getdate(),120)  --獲取當前日期  
  2. SELECT CONVERT(DATE,GETDATE(),110) --獲取當前日期  
  3. SELECT CONVERT(DATETIME,GETDATE(),110) --獲取當前時間日期  
  4. SELECT CONVERT(VARCHAR(50),GETDATE(),108)  --獲取當前時刻  

2.DateName ( datepart , date )返回表示指定日期的指定日期部分的字符串。

[sql] view plain copy
  1. --今天是2009-2-24--星期二  
  2. SELECT DATENAME(year, getdate()) AS 'Year Name' --------返回:2009  
  3. SELECT DATENAME(Month, getdate()) AS 'Month Name' --獲取當前年份(月、日、時、分、秒同理)  
  4. SELECT DATENAME(weekday, getdate()) AS 'Weekday Name' --當前日期所在周幾  
3.DATEADD (datepart , number, date ),在向指定日期加上一段時間的基礎上,返回新的 datetime 值

[sql] view plain copy
  1. select DateAdd(MM,2,'2008-8-8'--------------返回:2008-10-08 00:00:00.000  
  2. select DateAdd(dd,2,'2008-8-8'--------------返回:2008-08-10 00:00:00.000  
  3. select dateadd(hh,-1,getdate()) --------------返回:2009-02-23 12:46:46.450,返回前一個小時的時間  
[sql] view plain copy
  1. --獲取當前日期所在周的週一  
  2. select dateadd(day, datepart(weekday,getdate()),getdate())--獲取本週一日期  
  3. SELECT CONVERT(DATE,DATEADD(wk, DATEDIFF(week,0,getdate()),0),110) --獲取本週一日期  



4.DATEDIFF (
date-part, date-expression-1, date-expression-2 )  返回兩個日期之間的間隔。

  此函數計算兩個指定日期之間日期部分的數目。結果爲日期部分中等於(date2 - date1)的有符號的整數值。

[sql] view plain copy
  1. SELECT datediff( hour'4:00AM''5:50AM' )---------------------------返回: 1  
  2. SELECT datediff( month'1987/05/02''1995/11/15' )------------------返回: 102  
  3. SELECT datediff( day'00:00''23:59' )------------------------------返回:0  
  4. SELECT datediff( day,  '1999/07/19 00:00',  '1999/07/23 23:59' )------返回:4  
  5. SELECT datediff( month'1999/07/19''1999/07/23' )------------------返回:0  
  6. SELECT datediff( month'1999/07/19''1999/08/23' )------------------返回:1  
實例:查詢當天更新的數據 
[sql] view plain copy
  1. select * from tableName where datediff(dd,F_EditTime,getdate())=0  
5.DATEPART datepart ,date )返回代表指定日期的指定日期部分的整數。
[sql] view plain copy
  1. --今天是2009-2-24 星期二  
  2. SELECT DATEPART(year,getdate()) as 'Year'    --------返回:2009  
  3. SELECT DATEPART(month,getdate()) as 'Month'   ---------返回:2  
  4. SELECT DATEPART(weekday,getdate()) as 'Weekday' ---------返回:3,如:Sunday = 1、Saturday = 7  
  5. SELECT DAY(getdate())             -----------------------返回:24  
備註:DAY、MONTH、和 YEAR 函數分別是 DATEPART(dddate)、DATEPART(mmdate)、和 DATEPART(yydate) 的同義詞。

以上轉自


以下的文章主要描述的是SQL Server使用convert取得datetime日期數據的實際操作流程,在實際操作中用SQL Server數據庫中用convert來獲取datetime日期數據,以下實例包含各種日期格式的轉換。

語句及查詢結果:

  1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM  
  2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/0 

SQL Server使用convert來取得datetime日期數據,以下實例包含各種日期格式的轉換

語句及查詢結果:

  1. Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM  
  2. Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06  
  3. Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16  
  4. Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06  
  5. Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06  
  6. Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06  
  7. Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06  
  8. Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06  
  9. Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46  
  10. Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM  
  11. Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06  
  12. Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16  
  13. Select CONVERT(varchar(100), GETDATE(), 12): 060516  
  14. Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937  
  15. Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967  
  16. Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47  
  17. Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157  
  18. Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM  
  19. Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16  
  20. Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47  
  21. Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250  
  22. Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM  
  23. Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006  
  24. Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16  
  25. Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006  
  26. Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006  
  27. Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006  
  28. Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006  
  29. Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006  
  30. Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49  
  31. Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM  
  32. Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006  
  33. Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16  
  34. Select CONVERT(varchar(100), GETDATE(), 112): 20060516  
  35. Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513  
  36. Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547  
  37. Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49  
  38. Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700  
  39. Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827  
  40. Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM  
  41. Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM 

說明:

SQL Server使用convert:

  1. CONVERT ( data_type [ ( length ) ] , expression [ , style ] ) 

參數

expression

是任何有效的 Microsoft? SQL Server? 表達式。。

data_type

目標系統所提供的數據類型,包括 bigint 和 sql_variant。不能使用用戶定義的數據類型。

length

nchar、nvarchar、char、varchar、binary 或 varbinary 數據類型的可選參數。

style

日期格式樣式,藉以將 datetime 或 smalldatetime 數據轉換爲字符數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型);或者字符串格式樣式,藉以將 float、real、money 或 smallmoney 數據轉換爲字符數據(nchar、nvarchar、char、varchar、nchar 或 nvarchar 數據類型)。

SQL Server 支持使用科威特算法的阿拉伯樣式中的數據格式。

在表中,左側的兩列表示將 datetime 或 smalldatetime 轉換爲字符數據的 style 值。給 style 值加 100,可獲得包括世紀數位的四位年份 (yyyy)。

不帶世紀數位 (yy) 帶世紀數位 (yyyy)

標準

輸入/輸出**

- 0 或 100 (*) 默認值 mon dd yyyy hh:miAM(或 PM)

1 101 美國 mm/dd/yyyy

2 102 ANSI yy.mm.dd

3 103 英國/法國 dd/mm/yy

4 104 德國 dd.mm.yy

5 105 意大利 dd-mm-yy

6 106 - dd mon yy

7 107 - mon dd, yy

8 108 - hh:mm:ss

- 9 或 109 (*) 默認值 + 毫秒 mon dd yyyy hh:mi:ss:mmmAM(或 PM)

10 110 美國 mm-dd-yy

11 111 日本 yy/mm/dd

12 112 ISO yymmdd

- 13 或 113 (*) 歐洲默認值 + 毫秒 dd mon yyyy hh:mm:ss:mmm(24h)

14 114 - hh:mi:ss:mmm(24h)

- 20 或 120 (*) ODBC 規範 yyyy-mm-dd hh:mm:ss[.fff]

- 21 或 121 (*) ODBC 規範(帶毫秒) yyyy-mm-dd hh:mm:ss[.fff]

- 126(***) ISO8601 yyyy-mm-dd Thh:mm:ss.mmm(不含空格)

- 130* Hijri**** dd mon yyyy hh:mi:ss:mmmAM

- 131* Hijri**** dd/mm/yy hh:mi:ss:mmmAM

* 默認值(style 0 或 100、9 或 109、13 或 113、20 或 120、21 或 121)始終返回世紀數位 (yyyy)。

** 當轉換爲 datetime時輸入;當轉換爲字符數據時輸出。

*** 專門用於 XML。對於從 datetime或 smalldatetime 到 character 數據的轉換,輸出格式如表中所示。對於從 float、money 或 smallmoney 到 character 數據的轉換,輸出等同於 style 2。對於從 real 到 character 數據的轉換,輸出等同於 style 1。

****Hijri 是具有幾種變化形式的日曆系統,Microsoft? SQL Server? 2000 使用其中的科威特算法。

重要 默認情況下,SQL Server 根據截止年份 2049 解釋兩位數字的年份。即,兩位數字的年份 49 被解釋爲 2049,而兩位數字的年份 50 被解釋爲 1950。許多客戶端應用程序(例如那些基於 OLE 自動化對象的客戶端應用程序)都使用 2030 作爲截止年份。

SQL Server 提供一個配置選項("兩位數字的截止年份"),藉以更改 SQL Server 所使用的截止年份並對日期進行一致性處理。然而最安全的辦法是指定四位數字年份。

當從 smalldatetime 轉換爲字符數據時,包含秒或毫秒的樣式將在這些位置上顯示零。當從 datetime 或 smalldatetime 值進行轉換時,可以通過使用適當的 char 或 varchar 數據類型長度來截斷不需要的日期部分。

以上的相關內容就是對SQL Server使用convert來取得datetime日期數據的介紹,望你能有所收穫。


轉自這裏


發佈了44 篇原創文章 · 獲贊 27 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章