深入理解CAST和CONVERT提供的具體功能
語法
使用 CAST:
CAST ( expression AS data_type )
使用 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)。以上內容是到SQL幫助中複製下來的,但是要注意個情況,但CONVERT對日期進行轉換時,注意style的用法,看以下有什麼不同:
--字元轉換為日期時,Style的使用--1. Style=101時,表示日期字串為:mm/dd/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',101)
--結果:2003-11-01 00:00:00.000
--2. Style=101時,表示日期字串為:dd/mm/yyyy格式
SELECT CONVERT(datetime,'11/1/2003',103)--結果:2003-01-11 00:00:00.000
/*== 日期轉換為字串 ==*/
DECLARE @dt datetimeSET @dt='2003-1-11'
--1. Style=101時,表示將日期轉換為:mm/dd/yyyy 格式
SELECT CONVERT(varchar,@dt,101)
--結果:01/11/2003
--2. Style=103時,表示將日期轉換為:dd/mm/yyyy 格式
SELECT CONVERT(varchar,@dt,103)
--結果:11/01/2003
/*== 這是很多人經常犯的錯誤,對非日期型轉換使用日期的style樣式 ==*/
SELECT CONVERT(varchar,'2003-1-11' ,101)
--結果:2003-1-11
SELECT CONVERT(varchar,CAST('2003-1-11' AS DATETIME),101)
--結果:01/11/2003
------------------------------------------------------------------------------------------------
convert和cast是為了輸出格式的轉化
--日期轉換引數,值得收藏
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
相關文章
- MySQL CAST與CONVERT 函式的用法MySqlAST函式
- CRM軟體所具備的功能
- reinterpret_cast 和 static_cast 的區別AST
- 深入理解Java的==和equalsJava
- Python技術分享:深入理解ThreadLocal變數的功能和使用Pythonthread變數
- 深入理解Java的堆記憶體和執行緒記憶體Java記憶體執行緒
- 透過一個具體的例子理解 npm 的 peerDependencyNPM
- 深入理解equals和==的區別
- 深入理解JVM-記憶體模型(jmm)和GCJVM記憶體模型GC
- 反射和代理的具體應用反射
- 親和圖的具體操作指南
- 深入學習和理解 ReduxRedux
- 深入理解 Python 的物件複製和記憶體佈局Python物件記憶體
- 深入理解 Redux 中介軟體Redux
- 深入理解Swift中的Class和StructSwiftStruct
- 深入理解JavaScript中的WeakMap和WeakSetJavaScript
- <七>深入理解new和delete的原理delete
- Golang的反射reflect深入理解和示例Golang反射
- 深入理解Java的介面和抽象類Java抽象
- 完美匹配企業需求的FTP替代軟體,需要具備哪些功能和價值?FTP
- BI軟體平臺應具備哪些功能
- 深入理解ES6--4.擴充套件的物件功能套件物件
- 深入理解ES6之《改進的陣列功能》陣列
- 深入理解ES6--10.增強的陣列功能陣列
- 深入理解和運用Pandas的GroupBy機制——理解篇
- static_cast和dynamic_cast的區別,看完這篇你就懂了!AST
- 透過3D立方體深入理解perspective和translateZ的關係3D
- Blocks深入理解和詳解BloC
- 深入理解原型和原型鏈原型
- 高效率的專案管理軟體應具備的功能專案管理
- 深入理解python中的類和物件Python物件
- SpringIOC二—— 容器 和 Bean的深入理解SpringBean
- 具體問題具體分析
- 《深入理解ES6》4.擴充套件的物件功能套件物件
- 深入理解Java中的記憶體洩漏Java記憶體
- this的具體使用
- typedef和define具體的詳細區別
- 客戶管理系統需要具體的四大功能