轉自:http://blog.csdn.net/cherish1forever/article/details/49022165
1.獲取系統當前時間
- select convert(varchar(10),getdate(),120) --獲取當前日期
- SELECT CONVERT(DATE,GETDATE(),110) --獲取當前日期
- SELECT CONVERT(DATETIME,GETDATE(),110) --獲取當前時間日期
- SELECT CONVERT(VARCHAR(50),GETDATE(),108) --獲取當前時刻
2.DateName ( datepart , date )返回表示指定日期的指定日期部分的字符串。
- --今天是2009-2-24--星期二
- SELECT DATENAME(year, getdate()) AS 'Year Name' --------返回:2009
- SELECT DATENAME(Month, getdate()) AS 'Month Name' --獲取當前年份(月、日、時、分、秒同理)
- SELECT DATENAME(weekday, getdate()) AS 'Weekday Name' --當前日期所在周幾
- select DateAdd(MM,2,'2008-8-8') --------------返回:2008-10-08 00:00:00.000
- select DateAdd(dd,2,'2008-8-8') --------------返回:2008-08-10 00:00:00.000
- select dateadd(hh,-1,getdate()) --------------返回:2009-02-23 12:46:46.450,返回前一個小時的時間
- --獲取當前日期所在周的週一
- select dateadd(day, datepart(weekday,getdate()),getdate())--獲取本週一日期
- SELECT CONVERT(DATE,DATEADD(wk, DATEDIFF(week,0,getdate()),0),110) --獲取本週一日期
4.DATEDIFF ( date-part, date-expression-1, date-expression-2 ) 返回兩個日期之間的間隔。
此函數計算兩個指定日期之間日期部分的數目。結果爲日期部分中等於(date2 - date1)的有符號的整數值。
- SELECT datediff( hour, '4:00AM', '5:50AM' )---------------------------返回: 1
- SELECT datediff( month, '1987/05/02', '1995/11/15' )------------------返回: 102
- SELECT datediff( day, '00:00', '23:59' )------------------------------返回:0
- SELECT datediff( day, '1999/07/19 00:00', '1999/07/23 23:59' )------返回:4
- SELECT datediff( month, '1999/07/19', '1999/07/23' )------------------返回:0
- SELECT datediff( month, '1999/07/19', '1999/08/23' )------------------返回:1
- select * from tableName where datediff(dd,F_EditTime,getdate())=0
- --今天是2009-2-24 星期二
- SELECT DATEPART(year,getdate()) as 'Year' --------返回:2009
- SELECT DATEPART(month,getdate()) as 'Month' ---------返回:2
- SELECT DATEPART(weekday,getdate()) as 'Weekday' ---------返回:3,如:Sunday = 1、Saturday = 7
- SELECT DAY(getdate()) -----------------------返回:24
以上轉自
以下的文章主要描述的是SQL Server使用convert取得datetime日期數據的實際操作流程,在實際操作中用SQL Server數據庫中用convert來獲取datetime日期數據,以下實例包含各種日期格式的轉換。
語句及查詢結果:
- Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
- Select CONVERT(varchar(100), GETDATE(), 1): 05/16/0
SQL Server使用convert來取得datetime日期數據,以下實例包含各種日期格式的轉換
語句及查詢結果:
- Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
- Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
- Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
- Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
- Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
- Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
- Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
- Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
- Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
- Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
- Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
- Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
- Select CONVERT(varchar(100), GETDATE(), 12): 060516
- Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
- Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
- Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
- Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
- Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
- Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
- Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
- Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
- Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
- Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
- Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
- Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
- Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
- Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
- Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
- Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
- Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
- Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
- Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
- Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
- Select CONVERT(varchar(100), GETDATE(), 112): 20060516
- Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
- Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
- Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
- Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
- Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
- Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
- Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
說明:
SQL Server使用convert:
- 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日期數據的介紹,望你能有所收穫。