SqlServer之Convert 函数应用格式化日期

本文介绍了SQL Server中使用CONVERT函数进行日期时间格式转换的方法,包括多种样式代码对应的日期时间显示格式,适用于不同地区和需求。

SqlServer之Convert 函数应用

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(data_type,expression[,style])

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



http://hi.baidu.com/affections/blog/item/e1b0f83f70e088f0838b132e.html

### SQL Server 中使用 CONVERT 函数格式化日期的方法 在 SQL Server 中,`CONVERT` 函数是将日期时间类型转换为其他数据类型并以不同格式显示的重要工具。其语法如下: ```sql CONVERT(data_type(length), expression, style) ``` 其中 `data_type` 指定目标数据类型(如 `VARCHAR`),`expression` 是要转换的日期/时间值,`style` 参数决定了输出格式。 #### 常用日期格式化样式代码 SQL Server 提供了多种预定义的样式代码用于格式化日期输出,例如: - `101`:`MM/dd/yyyy` 格式 - `102`:`yyyy.mm.dd` 格式 - `103`:`dd/MM/yyyy` 格式 - `108`:`HH:mm:ss` 时间格式 - `112`:`yyyyMMdd` 紧凑格式 以下是一个示例,展示如何使用不同的样式代码进行日期转换: ```sql SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS US_Format, -- MM/DD/YYYY CONVERT(VARCHAR(10), GETDATE(), 102) AS ANSI_Format, -- YYYY.MM.DD CONVERT(VARCHAR(10), GETDATE(), 103) AS UK_Format, -- DD/MM/YYYY CONVERT(VARCHAR(8), GETDATE(), 108) AS Time_Format, -- HH:MM:SS CONVERT(VARCHAR(8), GETDATE(), 112) AS ISO_Format; -- YYYYMMDD ``` #### 自定义格式化日期字符串 若需要将日期格式化为特定字符串(如 `yyyy年MM月dd日`),可以通过拼接方式实现。例如: ```sql SELECT CONVERT(VARCHAR(4), GETDATE(), 112) + '年' + SUBSTRING(CONVERT(VARCHAR(6), GETDATE(), 112), 5, 2) + '月' + RIGHT(CONVERT(VARCHAR(8), GETDATE(), 112), 2) + '日' AS Custom_Format; ``` 此方法利用 `CONVERT` 结合字符串函数提取年、月、日部分,并手动拼接中文格式[^1]。 #### 使用 FORMAT 函数替代方案 对于更复杂的格式化需求,SQL Server 提供了 `FORMAT` 函数,支持直接指定自定义格式字符串,例如: ```sql SELECT FORMAT(GETDATE(), 'yyyy年MM月dd日') AS Custom_Format; ``` 但需注意,`FORMAT` 函数性能通常低于 `CONVERT`,因此在对性能敏感的场景中建议优先使用 `CONVERT` 方法[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值