語法
使用 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 datetime
SET @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
新聞熱點
疑難解答