【SQLserver】一天一个函数:CONVERT函数(第二天)

CONVERT函数与CAST函数类似,也用于数据类型的转换,但它更加的灵活,可以在转换时指定格式化选项。

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

其中:

data_type:目标数据类型。

length:是可选的,用于指定转换后的数据类型的长度或精度。

expression:要转换的表达式或列。

style:是可选的,用于指定日期和时间数据类型的输出格式。

 例如:将日期时间转换为字符类型,并指定日期格式

select CONVERT(varchar(30),GETDATE(),120);

对于日期和时间数据类型的输出格式,具体如下所示:

1. 日期格式化:
1:SELECT CONVERT(varchar(100), GETDATE(), 1) -> 07/12/24
2:SELECT CONVERT(varchar(100), GETDATE(), 2) -> 24.07.12
3:SELECT CONVERT(varchar(100), GETDATE(), 3) -> 12/07/24
4:SELECT CONVERT(varchar(100), GETDATE(), 4) -> 12.07.24
5:SELECT CONVERT(varchar(100), GETDATE(), 5) -> 12-07-24
6:SELECT CONVERT(varchar(100), GETDATE(), 6) -> 12 07 24
7:SELECT CONVERT(varchar(100), GETDATE(), 7) -> 07 12, 24
10:SELECT CONVERT(varchar(100), GETDATE(), 10) -> 07-12-24
11:SELECT CONVERT(varchar(100), GETDATE(), 11) -> 24/07/12
12:SELECT CONVERT(varchar(100), GETDATE(), 12) -> 240712
23:SELECT CONVERT(varchar(100), GETDATE(), 23) -> 2024-07-12
101:CONVERT(varchar, GETDATE(), 101) -> 07/09/2024
102 :CONVERT(varchar, GETDATE(), 102) -> 2024.07.09
103 :CONVERT(varchar, GETDATE(), 103) -> 09/07/2024
104 :CONVERT(varchar, GETDATE(), 104) -> 09.07.2024
105 :CONVERT(varchar, GETDATE(), 105) -> 09-07-2024
106 :CONVERT(varchar, GETDATE(), 106) -> 09 Jul 2024
107:CONVERT(varchar, GETDATE(), 107) -> Jul 09, 2024
110 :CONVERT(varchar, GETDATE(), 110) -> 07-09-2024
111 :CONVERT(varchar, GETDATE(), 111) -> 2024/07/09
112 :CONVERT(varchar, GETDATE(), 112) -> 20240709

2. 时间格式化:
8:SELECT CONVERT(varchar(100), GETDATE(), 8) -> 14:30:00
14:SELECT CONVERT(varchar(100), GETDATE(), 14) -> 14:30:00:000
24:SELECT CONVERT(varchar(100), GETDATE(), 24) -> 14:30:00
108:CONVERT(varchar, GETDATE(), 108) -> 14:30:59
113:CONVERT(varchar, GETDATE(), 113) -> 14:30:59:123
114 (SQL Server 特有):CONVERT(varchar, GETDATE(), 114) -> 14:30:59:123

3.特殊格式化:
0:SELECT CONVERT(varchar(100), GETDATE(), 0) -> 07 12 2024 02:30PM
9:SELECT CONVERT(varchar(100), GETDATE(), 9) -> 07 12 2024 02:30:00:000PM
13:SELECT CONVERT(varchar(100), GETDATE(), 13) -> 12 07 2024 14:30:00:000
20:SELECT CONVERT(varchar(100), GETDATE(), 20) -> 2024-07-12 14:30:00
21:SELECT CONVERT(varchar(100), GETDATE(), 21) -> 2024-07-12 14:30:00.157
22:SELECT CONVERT(varchar(100), GETDATE(), 22) -> 07/12/24 02:30:00 PM
25:SELECT CONVERT(varchar(100), GETDATE(), 25) -> 2024-07-12 14:30:00.250
100:SELECT CONVERT(varchar(100), GETDATE(), 100) -> 07 12 2024 02:30PM
109 :CONVERT(varchar, GETDATE(), 109) -> 07 09 2024 14:30:59:123
120:CONVERT(varchar, GETDATE(), 120) -> 2024-07-09 14:30:59
121:CONVERT(varchar, GETDATE(), 121) -> 2024-07-09 14:30:59:123

注:不同版本的 SQL Server 可能会有微妙的差异,尤其是在处理日期格式化时。如有不同则为版本不同。

关于日期和时间的表示如下:

1. 日期:

  • yyyy: 表示四位数的年份,例如 2024。
  • yy: 表示两位数的年份,例如 24 表示2024年。
  • mm: 表示两位数的月份,例如 07 表示七月。
  • MMM: 表示缩写的月份,例如 Jan 表示一月。
  • MMMM: 表示完整的月份名称,例如 January 表示一月。
  • dd: 表示两位数的日期,例如 09 表示九号。

2. 时间:

  • hh: 表示两位数的小时(12小时制),例如 03 表示上午3点。
  • HH: 表示两位数的小时(24小时制),例如 13 表示下午1点。
  • mi: 表示两位数的分钟,例如 15 表示15分钟。
  • mm: 与 mi 相同,表示分钟数,例如 30 表示30分钟。
  • ss: 表示两位数的秒,例如 30 表示30秒。
  • mmm:ss后跟mmm表示毫秒,例如hh:mi:ss:mmm (毫秒)

 CONVERT函数与CAST函数的区别:

1. CAST函数是ANSI SQL标准的一部分,在不同数据库系统中都有支持。

2. CONVERT是SQL Server中特有的函数,不具备跨数据库的通用性。

3. 在涉及简单的数据类型转换(如整数到字符)时,CAST函数和CONVERT函数的性能差异可以忽略不计。但涉及到复杂的日期格式化或者其他特殊需求时,CONVERT函数更加合适。

  • 24
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值