sql 之 convert函数

CONVERT(data_type,expression[,style])

convert(varchar(10),字段名,转换格式)

说明:
此样式一般在时间类型(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(), 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

说明:
使用 CONVERT

CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

参数

expression

是任何有效的 Microsoft® SQL Server™ 表达式。。

data_type

目标系统所提供的数据类型,包括 bigintsql_variant。不能使用用户定义的数据类型。
length

ncharnvarcharcharvarcharbinaryvarbinary 数据类型的可选参数。

style

日期格式样式,借以将 datetime 或 smalldatetime 数据转换为字符数据(ncharnvarcharcharvarcharncharnvarchar 数据类型);或者字符串格式样式,借以将 floatrealmoneysmallmoney 数据转换为字符数据(ncharnvarcharcharvarcharncharnvarchar 数据类型)。

SQL Server 支持使用科威特算法的阿拉伯样式中的数据格式。

在表中,左侧的两列表示将 datetime 或 smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。

不带世纪数位 (yy)带世纪数位 (yyyy)
标准

输入/输出**
-0 或 100 (*) 默认值mon dd yyyy hh:miAM(或 PM)
1101美国mm/dd/yyyy
2102ANSIyy.mm.dd
3103英国/法国dd/mm/yy
4104德国dd.mm.yy
5105意大利dd-mm-yy
6106-dd mon yy
7107-mon dd, yy
8108-hh:mm:ss
-9 或 109 (*) 默认值 + 毫秒mon dd yyyy hh:mi:ss:mmmAM(或 PM)
10110美国mm-dd-yy
11111日本yy/mm/dd
12112ISOyymmdd
-13 或 113 (*) 欧洲默认值 + 毫秒dd mon yyyy hh:mm:ss:mmm(24h)
14114-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(***)ISO8601yyyy-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或 smalldatetimecharacter 数据的转换,输出格式如表中所示。对于从 floatmoneysmallmoneycharacter 数据的转换,输出等同于 style 2。对于从 realcharacter 数据的转换,输出等同于 style 1。
****Hijri 是具有几种变化形式的日历系统,Microsoft® SQL Server™ 2000 使用其中的科威特算法。

重要    默认情况下,SQL Server 根据截止年份 2049 解释两位数字的年份。即,两位数字的年份 49 被解释为 2049,而两位数字的年份 50 被解释为 1950。许多客户端应用程序(例如那些基于 OLE 自动化对象的客户端应用程序)都使用 2030 作为截止年份。SQL Server 提供一个配置选项("两位数字的截止年份"),借以更改 SQL Server 所使用的截止年份并对日期进行一致性处理。然而最安全的办法是指定四位数字年份。

当从 smalldatetime 转换为字符数据时,包含秒或毫秒的样式将在这些位置上显示零。当从 datetime 或 smalldatetime 值进行转换时,可以通过使用适当的 charvarchar 数据类型长度来截断不需要的日期部分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SQL Server 中的 CONVERT 函数用于将一种数据类型转换为另一种数据类型。语法如下: CONVERT(data_type, expression, style) 其中,data_type 是要转换成的数据类型,expression 是要转换的表达式,style 是格式化样式。 例如,将字符串 '2022-01-01' 转换为日期类型: CONVERT(DATE, '2022-01-01', 120) 还可以用 style 参数来指定转换的格式,例如将日期转换为字符串,并指定格式为 'yyyy年mm月dd日': CONVERT(NVARCHAR(20), GETDATE(), 120) ### 回答2: SQL Server 中的 CONVERT 函数用于将数据类型从一种格式转换为另一种数据类型。该函数可以用于将字符串、日期和数字数据类型转换为其他数据类型。它是一个非常有用的函数,通常用于处理数据仓库和数据分析任务中的数据类型问题。 CONVERT 函数的语法如下: CONVERT(target_data_type, expression, [style]) 其中: - target_data_type:目标数据类型,可以是 SQL Server 支持的任意数据类型; - expression:要转换的表达式或列; - style:可选参数,用于指定要转换的日期和时间值的格式。 下面是一个例子: SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS ConvertedDate 这个查询将当前日期转换为一个字符串,格式为 “MM/dd/yyyy”。 SQL Server 中的 CONVERT 函数还可以用于将不同的字符编码转换为 SQL Server 支持的字符编码。 例如,下面是将一个字符串从 UTF-8 编码转换为 SQL Server 支持的字符编码的示例: SELECT CONVERT(NVARCHAR(MAX), CONVERT(VARBINARY(MAX), 'This is a test string in UTF-8 format'), 1) 这个查询将一个字符串从 UTF-8 编码转换为 SQL Server 中的 NVARCHAR 类型。 1 表示转换为 SQL Server 支持的字符编码。 总之,SQL Server CONVERT 函数是一个非常有用的函数,用于将数据类型从一种格式转换为另一种。熟练使用此函数可以帮助您更轻松地处理数据仓库和数据分析中的数据类型问题。 ### 回答3: SQL Server中的CONVERT函数是一种用于将一个数据类型转换为另一个数据类型的函数。它可以将日期、文本、数字等数据类型转换为另一个数据类型。它的用法如下: CONVERT (data_type, expression, [style]) 其中,data_type表示要转换的目标数据类型,expression是源数据类型的表达式,style是可选的格式选项,用于指定日期/时间格式等。 最常用的转换类型是将字符串转换为日期/时间类型,如将字符“2019-01-01”转换为日期类型,就可以使用以下语句: CONVERT(datetime, '2019-01-01') 此外,还可以将数字类型转换为字符串类型,如将数字100转换为字符串类型,就可以使用以下语句: CONVERT(varchar, 100) 在转换数字类型时,还可以使用style选项指定数据格式。例如,将数字类型的1234567890转换为货币格式的字符串,可以使用以下语句: CONVERT(varchar, 1234567890, 1) 其中1表示将数字转换为货币格式。 除了转换日期/时间和数字类型,CONVERT函数还支持将其他数据类型转换为文本、二进制、Unicode等类型。例如,将NCHAR类型的字符串转换为VARBINARY类型的二进制数据,可以使用以下语句: CONVERT(varbinary, N'abc') 需要注意的是,在使用CONVERT函数进行数据类型转换时,需要确保源数据类型的值可以转换为目标数据类型。否则,将会出现转换错误。因此,在进行数据类型转换之前,需要仔细检查源数据类型和目标数据类型,并在必要时进行数据清理和格式化处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值