我需要获得该月最后一天的时间,例如
2023-01-31 23:59:59:000000
我只能获取该月的最后一天,时间戳为
2023-01-31 00:00:00:000000
正如 jarlh 所说,你最好的方法是在月底添加一天,然后减去一秒(尽管如果你真的想要绝对最大时间,我认为你会想要减去 3 毫秒)。
EOMONTH -> 添加 1 天 -> 转换为日期时间 -> 删除 1 秒/3 毫秒。您必须转换为日期时间,因为 EOMONTH 函数隐式转换为日期
代码将是这样的:
SELECT DATEADD(SECOND, -1, CAST(DATEADD(DAY, 1, EOMONTH(@currentDate)) AS DATETIME))
SELECT DATEADD(MILLISECOND, -3, CAST(DATEADD(DAY, 1, EOMONTH(@currentDate)) AS DATETIME))
已经有类似的问题有很多答案。你应该肯定能找到你的答案: 在 SQL 中获取该月的最后一天
SQL 查询显示当前月份的结束日期
DECLARE @currentDate DATE = GETDATE()
SELECT EOMONTH (@currentDate) AS CurrentMonthED
SQL 查询显示下个月的结束日期
DECLARE @currentDate DATE = GETDATE()
SELECT EOMONTH (@currentDate, 1 ) AS NextMonthED