1. SQL Server 时间格式概述
在 SQL Server 中,日期和时间是常见的数据类型之一。有时需要将日期和时间格式从一种格式转换为另一种格式。在 SQL Server 中,日期和时间格式的转换可以使用内置的 CONVERT 函数和 CAST 函数。这些函数支持多种日期和时间格式,包括标准的 ISO 8601 格式。
2. 使用 CONVERT 函数进行日期和时间格式转换
2.1 使用 CONVERT 函数将日期和时间转换为字符型
在 SQL Server 中,使用 CONVERT 函数可以将日期和时间值从一个格式转换为字符型。以下是将日期和时间转换为不同格式字符型的示例。
--将日期转换为字符型,使用默认格式
SELECT CONVERT(varchar(10), GETDATE(), 101)
--将时间转换为字符型,使用 24 小时制
SELECT CONVERT(varchar(8), GETDATE(), 108)
--将日期时间转换为字符型,使用自定义格式
SELECT CONVERT(varchar(19), GETDATE(), 120)
说明:
上述示例中,第一个示例将当前日期转换为字符型,使用默认格式。第二个示例将当前时间转换为字符型,使用 24 小时制。第三个示例将当前日期时间转换为字符型,使用自定义格式,格式为 yyyy-mm-dd hh:mi:ss。
2.2 使用 CONVERT 函数将字符型转换为日期和时间
在 SQL Server 中,使用 CONVERT 函数可以将字符型值从一个格式转换为日期和时间类型。以下是将字符型转换为日期和时间类型的示例。
--将字符型转换为日期类型,使用默认格式
SELECT CONVERT(date, '2022-01-01')
--将字符型转换为时间类型,使用 24 小时制
SELECT CONVERT(time, '23:59:59')
--将字符型转换为日期时间类型,使用自定义格式
SELECT CONVERT(datetime, '2022-01-01 23:59:59', 120)
说明:
上述示例中,第一个示例将字符型 '2022-01-01' 转换为日期类型,使用默认格式。第二个示例将字符型 '23:59:59' 转换为时间类型,使用 24 小时制。第三个示例将字符型 '2022-01-01 23:59:59' 转换为日期时间类型,使用自定义格式,格式为 yyyy-mm-dd hh:mi:ss。
3. 使用 CAST 函数进行日期和时间格式转换
在 SQL Server 中,使用 CAST 函数也可以将日期和时间值从一个格式转换为另一个格式。以下是使用 CAST 函数将日期和时间值从一个格式转换为另一个格式的示例。
--将日期转换为日期类型
SELECT CAST(GETDATE() AS date)
--将时间转换为时间类型
SELECT CAST(GETDATE() AS time)
--将日期时间转换为日期类型
SELECT CAST(GETDATE() AS date)
说明:
上述示例中,第一个示例将当前日期转换为日期类型。第二个示例将当前时间转换为时间类型。第三个示例将当前日期时间转换为日期类型。
4. 额外小技巧
以下是一些在日期和时间处理过程中有用的小技巧。
4.1 将日期和时间的格式转换为 ISO 8601 格式
ISO 8601 是一个国际标准,用于日期和时间表示法。使用该标准格式,可以轻松地将日期和时间转换为标准格式。
--将日期时间转换为 ISO 8601 格式
SELECT CONVERT(varchar(24), GETDATE(), 126)
说明:
上述示例中,使用 CONVERT 函数和格式 126 将当前日期时间转换为 ISO 8601 格式。
4.2 按年、月、日等将日期和时间拆分
使用 DATEPART 函数可以将日期和时间值拆分为其组成部分。
--将日期拆分为年、月、日
SELECT DATEPART(year, GETDATE()), DATEPART(month, GETDATE()), DATEPART(day, GETDATE())
--将时间拆分为小时、分钟、秒
SELECT DATEPART(hour, GETDATE()), DATEPART(minute, GETDATE()), DATEPART(second, GETDATE())
说明:
上述示例中,第一个示例使用 DATEPART 函数拆分当前日期为年、月、日。第二个示例使用 DATEPART 函数拆分当前时间为小时、分钟、秒。
5. 总结
在 SQL Server 中,日期和时间的处理是很常见的任务。正确地转换日期和时间格式对于正确执行 SQL 查询和操作非常重要。因此,掌握日期和时间格式转换技巧是 SQL Server 中必不可少的一项技能。