需求场景:
在 SQL Server 中,如果想将表【DemoTable】中“CreateDate ”日期(Date 类型,或 DateTime 类型但数据是 2024-06-01 00:00:00.000)转换为 DateTime 并在其后增减时间。
原日期时间:2024-06-01 00:00:00.000
1、在原日期时间的基础上加 23 小时
在 SQL Server 中,要将日期后面加上 23 小时,可以使用 DATEADD 函数来增加指定的时间间隔。
SELECT DATEADD(HOUR, 23, CreateDate ) AS CreateDateTime
FROM DemoTable
2、在原日期时间的基础上加 24 小时 59 分
在 SQL Server 中,要将日期(Date 类型)后面加上 23:59,可以使用 DATEADD 函数来实现。DATEADD 函数可以在日期上添加或减去指定的时间间隔。
SELECT DATEADD(MINUTE, 59, DATEADD(HOUR, 23, CreateDate )) AS CreateDateTime
FROM DemoTable
3、在原日期时间的基础上加 24 小时 59 分 59 秒
在 SQL Server 中,如果想将日期(Date 类型)转换为 DateTime 并在其后加上时间 23:59:59,你可以使用以下方法:
方法一:使用 CAST 和 CONVERT 函数
CAST 和 CONVERT 函数可以将日期转换为日期时间。
SELECT CAST(CreateDate AS DATETIME) + CAST('23:59:59' AS TIME) AS CreateDateTime
FROM DemoTable
方法二:使用 DATEADD 函数
DATEADD 函数可以在日期上添加特定的时间间隔。如:我们首先给日期添加一天,然后减去 1 秒钟,得到的结果就是原日期的 23:59:59。
SELECT DATEADD(SECOND, -1, DATEADD(DAY, 1, CreateDate )) AS CreateDateTime
FROM DemoTable
方法三:使用 EOMONTH 函数
EOMONTH 函数可以返回一个日期所在月份的最后一天。
SELECT EOMONTH(CreateDate ) AS CreateDateTime
FROM DemoTable