sql时间格式化输出、Convert函数应用示例

SQL时间格式化输出

在SQL中,时间是一种十分重要的数据类型。当我们需要将时间以一定的格式输出时,就需要对时间进行格式化。SQL Server提供了一些实用的函数来对时间进行格式化输出。下面介绍两种方法来实现时间格式化输出。

方法一:使用CONVERT函数

SQL Server中可以使用CONVERT函数来将时间以指定的格式输出。这个函数接收三个参数:要转换的数据类型、要转换的表达式以及要转换为的新类型。下面是一个使用CONVERT函数将当前时间以YYYY-MM-DD格式输出的例子:

SELECT CONVERT(VARCHAR(10), GETDATE(), 120) AS '当前时间'

其中,VARCHAR(10)表示要转换成的数据类型为VARCHAR,长度为10;GETDATE()函数获取当前时间;120表示要将时间转换为的新类型,即YYYY-MM-DD格式。运行以上代码,将会输出当前时间的日期部分:

当前时间

----------

2022-02-24

需要注意的是,CONVERT函数还可以将时间转换成其他的格式,如下表所示:

代码 结果
101 MM/DD/YYYY
102 YYYY.MM.DD
103 DD/MM/YYYY
104 DD.MM.YYYY
105 DD-MM-YYYY
106 DD MMM YYYY
107 MMM DD,YYYY
108 HH:MI:SS
109 MM-DD-YYYY HH:MI:SS
110 YYYY-MM-DD
111 YYYY/MM/DD
112 YYYYMMDD
120 YYYY-MM-DD HH:MI:SS
121 YYYY-MM-DD HH:MI:SS.MS

方法二:使用FORMAT函数

SQL Server 2012及以上版本提供了一个名为FORMAT的新函数,它可以更加简单地实现时间格式化。下面是一个在FORMAT函数中使用标准日期和时间格式字符串的例子,以YYYY-MM-DD格式输出当前日期:

SELECT FORMAT(GETDATE(), 'yyyy-MM-dd') AS '当前日期'

运行以上代码,将会输出当前日期:

当前日期

----------

2022-02-24

需要注意的是,FORMAT函数的第一个参数是要格式化的时间,第二个参数是用来描述时间格式的字符串。下面是一些常见的日期和时间格式字符串:

标准格式字符串 示例 说明
d 5 月中的第几天,不足两位时前面补0
dd 05 月中的第几天,不足两位时前面补0
ddd Sun 星期几的缩写
dddd Sunday 星期几的全称
M 9 月份,不足两位时不补0
MM 09 月份,不足两位时前面补0
MMM Sep 月份的缩写
MMMM September 月份的全称
y 2019 年份的最后一位,不足两位时不补0
yy 19 年份的最后两位,不足两位时前面补0
yyy 2019 年份,不足四位时前面补0
yyyy 2019 年份,不足四位时前面补0
h 3 12小时格式的小时,不足两位时不补0
hh 03 12小时格式的小时,不足两位时前面补0
H 15 24小时格式的小时,不足两位时不补0
HH 15 24小时格式的小时,不足两位时前面补0
m 9 分钟,不足两位时不补0
mm 09 分钟,不足两位时前面补0
s 8 秒数,不足两位时不补0
ss 08 秒数,不足两位时前面补0

CONVERT函数应用示例

示例一:转换字符型日期为日期型

假设数据库中有一个日期字段为字符型,存储的日期格式为YYYY-MM-DD,现需要将这个字段转换为日期型。可以使用CONVERT函数实现:

SELECT CONVERT(DATE, '2022-02-24', 120) AS '日期'

其中,DATE表示要转换成的数据类型为DATE,'2022-02-24'是要转换的表达式,120表示要将时间转换为的新类型,即YYYY-MM-DD格式。运行以上代码,将会输出日期:

日期

----------

2022-02-24

示例二:将日期型转换为字符型

假设有一个日期型字段BirthDay,现需要将其转换为字符型,并以YYYY/MM/DD格式输出。可以使用CONVERT函数实现:

SELECT CONVERT(VARCHAR(10), BirthDay, 111) AS '日期'

FROM Employee

其中,VARCHAR(10)表示要转换成的数据类型为VARCHAR,长度为10;BirthDay是要转换的表达式;111表示要将时间转换为的新类型,即YYYY/MM/DD格式。运行以上代码,将会输出Employee表中的所有员工的生日:

日期

----------

1985/01/01

1992/03/10

1990/11/15

1987/07/25

1991/06/08

1993/02/14

示例三:将日期型转换为时间型

假设数据库中有一个日期型字段StartTime,存储的时间格式为HH:MI:SS,现需要将这个字段转换为时间型。可以使用CONVERT函数实现:

SELECT CONVERT(TIME, StartTime) AS '时间'

FROM WorkTime

其中,TIME表示要转换成的数据类型为TIME,StartTime是要转换的表达式。假如WorkTime表中StartTime字段的值分别为08:30:00和13:00:00,那么运行以上代码,将会输出:

时间

----------

08:30:00

13:00:00

总结

本文介绍了SQL Server中实现时间格式化输出的两种方法:使用CONVERT函数和使用FORMAT函数。在实际开发中,我们可以根据需要选择适合自己的方法进行时间格式化输出。

数据库标签