当从数据库中查询时间信息时,不少时候需要将datetime格式的时间转换为字符串格式。在SQL Server中,我们可以使用CONVERT函数实现该功能。
1. CONVERT函数基本语法
CONVERT(data_type(length), expression, style)
其中,data_type,length参数表示想要转换成的目标数据类型及其长度;expression参数表示需要转换的时间表达式;style参数表示期望的输出格式。
2. style参数表
style参数定义了将date和time数据类型转换为datetime类型时的格式。下面列出了SQL Server支持的style参数表。
代码 | 日期/时间格式 | 示例 |
---|---|---|
100 | mon dd yyyy hh:miAM (or PM) | Oct 3 2018 1:45PM |
101 | mm/dd/yyyy | 10/03/2018 |
102 | yyyy.mm.dd | 2018.10.03 |
103 | dd/mm/yyyy | 03/10/2018 |
104 | dd.mm.yyyy | 03.10.2018 |
105 | dd-mm-yyyy | 03-10-2018 |
106 | dd mon yyyy | 03 Oct 2018 |
107 | mon dd, yyyy | Oct 3, 2018 |
108 | hh:mi:ss | 13:45:23 |
109 | mon dd yyyy hh:mi:ss:msAM (or PM) | Oct 3 2018 1:45:23:123PM |
110 | mm-dd-yyyy | 10-03-2018 |
111 | yyyy/mm/dd | 2018/10/03 |
112 | yyyymmdd | 20181003 |
注:该参数表摘自Microsoft官方文档
3. 示例
以下是两个将datetime类型的时间转换为字符串类型的示例。
示例1:将当前时间转换为标准日期格式
SELECT CONVERT(VARCHAR(100), GETDATE(), 101) AS [Date]
执行该命令,可得到如下结果:
Date
----------
06/22/2022
其中,GETDATE()函数返回当前的时间,将该表达式转换成字符串后,将其格式化为101所定义的日期格式。
示例2:将数据库表中的datetime类型字段转换为年月日时分秒格式
假设有一张表Student,其中包含了Birthday和AdmissionDate两个datetime类型的日期字段。我们需要从该表中查询出这两个字段,并将其转换为年月日时分秒格式的字符串。SQL语句如下:
SELECT
CONVERT(VARCHAR(100), Birthday, 120) AS BirthdayStr,
CONVERT(VARCHAR(100), AdmissionDate, 120) AS AdmissionDateStr
FROM Student
执行该命令,可得到如下结果:
BirthdayStr AdmissionDateStr
----------------------- -----------------------
1999-03-12 00:00:00 2022-06-20 13:45:23
2000-06-23 00:00:00 2021-03-15 09:15:13
2001-09-11 00:00:00 2020-07-09 11:30:29
其中,120表示将datetime数据类型转换为yyyy-mm-dd hh:mi:ss形式的字符串。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Sql中将datetime转换成字符串的方法(CONVERT) - Python技术站