SQLServer日期格式转换大全:常用场景与代码示例
1. 将日期时间转换为字符串
将日期时间转换为字符串是常见的操作,可以使用 `CONVERT` 或 `FORMAT` 函数。
使用 CONVERT 函数:
sql
SELECT CONVERT(VARCHAR, GETDATE(), 23) AS FormattedDate
这将返回当前日期和时间,格式为 `yyyy-MM-dd HH:mm:ss`。
使用 FORMAT 函数:
sql
SELECT FORMAT(GETDATE(), 'yyyy-MM-dd HH:mm:ss') AS FormattedDate
FORMAT` 函数提供了更多的格式化选项。
2. 将字符串转换为日期时间
将字符串转换为日期时间,可以使用 `CONVERT` 或 `TRY_CONVERT` 函数。
使用 CONVERT 函数:
sql
SELECT CONVERT(DATETIME, '2023-10-23 12:34:56') AS ConvertedDate
这将返回字符串 `'2023-10-23 12:34:56'` 对应的日期时间。
使用 TRY_CONVERT 函数:
sql
SELECT TRY_CONVERT(DATETIME, '2023-10-23 12:34:56') AS ConvertedDate
TRY_CONVERT` 函数在转换失败时返回 NULL,而不是抛出错误。
3. 提取日期时间部分
从日期时间中提取部分信息,如年、月、日、小时、分钟、秒等,可以使用 `DATEPART` 或 `DATEFROMPARTS` 函数。
使用 DATEPART 函数:
sql
SELECT DATEPART(YEAR, GETDATE()) AS Year,
DATEPART(MONTH, GETDATE()) AS Month,
DATEPART(DAY, GETDATE()) AS Day,
DATEPART(HOUR, GETDATE()) AS Hour,
DATEPART(MINUTE, GETDATE()) AS Minute,
DATEPART(SECOND, GETDATE()) AS Second
这将返回当前日期时间的年、月、日、小时、分钟和秒。
使用 DATEFROMPARTS 函数:
sql
SELECT DATEFROMPARTS(2023, 10, 23) AS Date
这将返回由年、月和日组成的日期。
4. 日期时间的计算
在 SQL Server 中,可以使用日期时间函数进行日期时间的计算,如加法、减法、比较等。
日期时间的加法:
sql
SELECT DATEADD(DAY, 5, GETDATE()) AS FiveDaysLater
这将返回当前日期时间加上 5 天后的日期时间。
日期时间的减法:
sql
SELECT DATEDIFF(DAY, '2023-01-01', GETDATE()) AS DaysSinceJan1
这将返回当前日期时间距离 `'2023-01-01'` 的天数。
5. 日期时间的比较
在 SQL Server 中,可以使用比较运算符(如 `>`、`<`、`=` 等)对日期时间进行比较。
比较日期时间:
sql
SELECT CASE WHEN GETDATE() > '2023-10-01' THEN 'After October 1st' ELSE 'Before October 1st' END AS Status
这将返回当前日期时间是否在 `'2023-10-01'` 之后。
6. 格式化日期时间输出
在 SQL Server 中,可以使用 `CONVERT` 函数以不同的格式显示日期时间。
格式化日期时间输出:
sql
SELECT CONVERT(VARCHAR, GETDATE(), 101) AS FormattedDate1,
CONVERT(VARCHAR, GETDATE(), 102) AS FormattedDate2,
CONVERT(VARCHAR, GETDATE(), 103) AS FormattedDate3
这将返回当前日期时间以不同的格式显示。

