SQL Server CONVERT() 函数 时间格式化

本文介绍了SQL Server中CONVERT()函数的使用方法,包括如何将日期转换为不同格式,提供了多种日期格式示例,并详细解释了各参数的作用。

CONVERT() 函数是把日期转换为新数据类型的通用函数。

CONVERT() 函数可以用不同的格式显示日期/时间数据。

CONVERT(data_type(length),data_to_be_converted,style)
data_type(length) 规定目标数据类型(带有可选的长度)。data_to_be_converted 含有需要转换的值。style规定日期/时间的输出格式。

Style ID Style 格式
100 或者 0 mon dd yyyy hh:miAM (或者 PM)
101 mm/dd/yy
102 yy.mm.dd
103 dd/mm/yy
104 dd.mm.yy
105 dd-mm-yy
106 dd mon yy
107 Mon dd, yy
108 hh:mm:ss
109 或者 9 mon dd yyyy hh:mi:ss:mmmAM(或者 PM)
110 mm-dd-yy
111 yy/mm/dd
112 yymmdd
113 或者 13 dd mon yyyy hh:mm:ss:mmm(24h)
114 hh:mi:ss:mmm(24h)
120 或者 20 yyyy-mm-dd hh:mi:ss(24h)
121 或者 21 yyyy-mm-dd hh:mi:ss.mmm(24h)
126 yyyy-mm-ddThh:mm:ss.mmm(没有空格)
130 dd mon yyyy hh:mi:ss:mmmAM
131 dd/mm/yy hh:mi:ss:mmmAM

实例

下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:

CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),110) 
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)

结果类似:

Dec 29 2008 11:45 PM
12-29-2008
29 Dec 08
29 Dec 2008 16:25:46.635

1 取值后格式化
{0:d}小型:如2005-5-6
{0:D}大型:如2005年5月6日
{0:f}完整型

2 当前时间获取 
DateTime.Now.ToShortDateString

3 取值中格式化
SQL Server里面可能经常会用到的日期格式转换方法:
sql server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换
语句及查询结果:
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



SQL Server中,时间格式化可以通过多种函数实现,其中最常用的是`FORMAT()`函数和`CONVERT()`函数。 ### 使用 `FORMAT()` 函数 `FORMAT()` 函数SQL Server 中最强大的日期和时间格式化函数,它允许将日期或时间格式化为指定的字符串格式。其基本语法如下: ```sql SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS FormattedDate; ``` 上述语句将当前日期和时间格式化为 `yyyy-MM-dd HH:mm:ss` 的字符串形式。`FORMAT()` 函数支持各种自定义格式字符串,例如: - `'yyyy-MM-dd'` 仅显示日期部分。 - `'HH:mm:ss'` 仅显示时间部分。 - `'dd/MM/yyyy HH:mm'` 以不同的顺序和格式显示日期和时间[^1]。 ### 使用 `CONVERT()` 函数 `CONVERT()` 函数SQL Server 中用于日期和时间格式化的另一个常用函数。它通过指定样式代码来控制输出格式。基本语法如下: ```sql SELECT CONVERT(varchar(100), GETDATE(), 120) AS FormattedDate; ``` 在上述语句中,`120` 是一个样式代码,表示格式为 `yyyy-mm-dd hh:mi:ss`。以下是一些常用的样式代码: - `23` 表示 `yyyy-mm-dd`。 - `108` 表示 `hh:mi:ss`。 - `120` 表示 `yyyy-mm-dd hh:mi:ss`[^3]。 ### 使用日期函数进行时间计算 SQL Server 提供了多个日期函数,用于对日期和时间进行计算和操作,包括 `DATEADD()`、`DATEDIFF()` 和 `DATEPART()` 等。 #### `DATEADD()` 函数 `DATEADD()` 函数用于向日期添加或减去指定的时间间隔。其基本语法如下: ```sql SELECT DATEADD(day, 1, GETDATE()) AS Tomorrow; ``` 上述语句返回当前日期加一天的结果。 #### `DATEDIFF()` 函数 `DATEDIFF()` 函数用于计算两个日期之间的差值。其基本语法如下: ```sql SELECT DATEDIFF(day, '2023-01-01', GETDATE()) AS DaysSinceNewYear; ``` 上述语句计算从 `2023-01-01` 到当前日期的天数差。 #### `DATEPART()` 函数 `DATEPART()` 函数用于提取日期的特定部分。其基本语法如下: ```sql SELECT DATEPART(hour, GETDATE()) AS CurrentHour; ``` 上述语句提取当前日期的小时部分[^2]。 ### 示例 以下是一个综合示例,展示如何使用 `FORMAT()` 和 `CONVERT()` 函数格式化日期和时间: ```sql -- 使用 FORMAT() 函数格式化日期和时间 SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS FormattedDate; -- 使用 CONVERT() 函数格式化日期和时间 SELECT CONVERT(varchar(100), GETDATE(), 120) AS FormattedDate; ``` 这些函数和方法可以帮助在 SQL Server 中灵活地处理和格式化日期和时间数据。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值