初識MS SQL Server中的CONVERT
CONVERT
將某種資料型別的表示式顯式轉換為另一種資料型別。由於某些需求經常用到取日期格式的不同,現以下可在SQL Server中將日期格式化。
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* | 科威特 | dd mon yyyy hh:mi:ss:mmmAM |
- | 131* | 科威特 | 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。
重要 預設情況下,SQL Server 根據截止年份 2049 解釋兩位數字的年份。即兩位數字的年份 49 被解釋為 2049,而兩位數字的年份 50 被解釋為 1950。許多客戶端應用程式(例如那些基於 OLE 自動化物件的客戶端應用程式)都使用 2030 作為截止年份。SQL Server 提供一個配置選項("兩位數字的截止年份"),藉以更改 SQL Server 所使用的截止年份並對日期進行一致性處理。然而最安全的辦法是指定四位數字年份。
當從 smalldatetime 轉換為字元資料時,包含秒或毫秒的樣式將在這些位置上顯示零。當從 datetime 或 smalldatetime 值進行轉換時,可以通過使用適當的 char 或 varchar 資料型別長度來截斷不需要的日期部分。
下表顯示了從 float 或 real 轉換為字元資料時的 style. 值。
值 輸出
0(預設值) 最大為 6 位數。根據需要使用科學記數法。
1 始終為 8 位值。始終使用科學記數法。
2 始終為 16 位值。始終使用科學記數法。
在下表中,左列表示從 money 或 smallmoney 轉換為字元資料時的 style. 值。
值 輸出
0(預設值) 小數點左側每三位數字之間不以逗號分隔,小數點右側取兩位數,例如 4235.98。
1 小數點左側每三位數字之間以逗號分隔,小數點右側取兩位數,例如 3,510.92。
2 小數點左側每三位數字之間不以逗號分隔,小數點右側取四位數,例如 4235.9819。
使用 CONVERT:
CONVERT (data_type[(length)], expression [, style])
select CONVERT(varchar, getdate(), 120 )
2004-09-12 11:06:08
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),\'-\',\'\'),\' \',\'\'),\':\',\'\')
20040912110608
select CONVERT(varchar(12) , getdate(), 111 )
2004/09/12
select CONVERT(varchar(12) , getdate(), 112 )
20040912
select CONVERT(varchar(12) , getdate(), 102 )
2004.09.12
select CONVERT(varchar(12) , getdate(), 101 )
09/12/2004
select CONVERT(varchar(12) , getdate(), 103 )
12/09/2004
select CONVERT(varchar(12) , getdate(), 104 )
12.09.2004
select CONVERT(varchar(12) , getdate(), 105 )
12-09-2004
select CONVERT(varchar(12) , getdate(), 106 )
12 09 2004
select CONVERT(varchar(12) , getdate(), 107 )
09 12, 2004
select CONVERT(varchar(12) , getdate(), 108 )
11:06:08
select CONVERT(varchar(12) , getdate(), 109 )
09 12 2004 1
select CONVERT(varchar(12) , getdate(), 110 )
09-12-2004
select CONVERT(varchar(12) , getdate(), 113 )
12 09 2004 1
select CONVERT(varchar(12) , getdate(), 114 )
11:06:08.177
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-580350/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ms sql server排序SQLServer排序
- Ms Sql Server查詢儲存過程中的內容SQLServer儲存過程
- Oracle\MS SQL Server Update多表關聯更新OracleSQLServer
- MS SQL Server 刪除重複行資料SQLServer
- MS SQL Server資料庫事務鎖機制分析(轉)SQLServer資料庫
- Python連線三大資料庫MS Sql Server、Oracle、MySQLPython大資料資料庫ServerOracleMySql
- Docker-compose搭建ELK環境並同步MS SQL Server資料DockerSQLServer
- SQL Server 2008中Analysis Services的新特性——深入SQL Server 2008SQLServer
- MS SQL 替換欄位中的 u00a0SQL
- SQL Server 中的 ACID 屬性SQLServer
- SQL Server中的版本號如何理解SQLServer
- SQL Server 中的一些概念SQLServer
- 初識前端中的棧前端
- SQL Server中GROUP BY(連結)SQLServer
- .sql檔案匯入到sql server中SQLServer
- 淺談SQL Server中的快照問題SQLServer
- SQL Server中的日期和時間:DATEADD()SQLServer
- C# convert sql blob type to plain stringC#SQLAI
- java.sql.SQLException: Fail to convert to internal representationJavaSQLExceptionAI
- sql server中巢狀事務*SQLServer巢狀
- Analysis Services基礎知識——深入SQL Server 2008SQLServer
- sql serverSQLServer
- SQL Server 2008中的行壓縮(上)JUSQLServer
- SQL Server中count(*)和Count(1)的區別SQLServer
- SQL Server中存在真正的“事務巢狀”SQLServer巢狀
- SQL Server中的高可用性概覽SQLServer
- SQL Server中的IO效能殺手Forwarded recordSQLServerForward
- Q&A:SQL Server 2008的升級與部署知識SOSQLServer
- SQL Server解惑——標識列的限制和跳號現象SQLServer
- SQL 獲取SQL Server中兩個日期之間的所有日期SQLServer
- 資料庫運維初入門-SQL Server入門到跑路002-初使用資料庫運維SQLServer
- SQL Server 的死鎖SQLServer
- 《初識TCP》iOS、macOS實現socket client與socket serverTCPiOSMacclientServer
- SQL Server中Table字典資料的查詢SQL示例程式碼SQLServer
- SQL Server安全審計中的常見疏忽NFSQLServer
- SQL Server中的集合運算: UNION, EXCEPT和INTERSECTSQLServer
- SQL Server 中的 NOLOCK 到底是什麼意思?SQLServer
- Spark 從零到開發(五)初識Spark SQLSparkSQL
- Moebius for SQL ServerSQLServer