T-SQL Convert转换时间类型
生活随笔
收集整理的這篇文章主要介紹了
T-SQL Convert转换时间类型
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?
關鍵字: sql 時間 轉化
SQL中CONVERT轉化函數的用法格式:
CONVERT(data_type,expression[,style])
說明:
此樣式一般在時間類型(datetime,smalldatetime)與字符串類型(nchar,nvarchar,char,varchar)
相互轉換的時候才用到.
例子:
SELECT CONVERT(varchar(30),getdate(),101) now
結果為:
now
---------------------------------------
|09/15/2001
===================================================================
style數字在轉換時間時的含義如下:
--------------------------------------------------------------------
Style(2位表示年份)?? |? Style(4位表示年份)?? |?? 輸入輸出格式???????????????????????????????????
---------------------------------------------------------------------
0?????????????????????????????? | 100?????????????????????????? |?? mon dd yyyy hh:miAM(或PM)?????????????
---------------------------------------------------------------------
1?????????????????????????????? |? 101?? 美國??????????????? |?? mm/dd/yy??????????????????????????????????????
--------------------------------------------------------------------
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:mmmmAM(或PM)
----------------------------------------------------------------------------
10???????????????????????????? |? 110??? 美國???????????????? |?? mm-dd-yy????????????????????????????????????????
-----------------------------------------------------------------------------
11???????????????????????????? |? 111??? 日本???????????????? |?? yy/mm/dd???????????????????????????????????????
-------------------------------------------------------------------------
12???????????????????????????? |? 112??? ISO????????????????? |?? yymmdd??????????????????????????????????????????
------------------------------------------------------------------------
13???????????????????????????? |? 113???? 歐洲默認值???? |?? dd mon yyyy hh:mi:ss:mmm(24小時制)?
------------------------------------------------------------------------
14???????????????????????????? |? 114??????????????????????????? |?? hh:mi:ss:mmm(24小時制)???????????????????
--------------------------------------------------------------------------
20???????????????????????????? |? 120???? ODBC 規范???? |??? yyyy-mm-dd hh:mi:ss(24小時制)????????
-----------------------------------------------------------------------------
21???????????????????????????? |?? 121?????????????????????????? |??? yyyy-mm-dd hh:mi:ss:mmm(24小時制)
-----------------------------------------------------------------------
語句及查詢結果:
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(),: 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
說明:
使用 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 數據類型長度來截斷不需要的日期部分。
轉載于:https://www.cnblogs.com/michaelShao/archive/2010/01/12/1644590.html
總結
以上是生活随笔為你收集整理的T-SQL Convert转换时间类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 换东西
- 下一篇: CString工作原理和常见问题分析