获取一个月的最后一个日期和当天的最后一分钟

问题描述 投票:0回答:2

我需要获得该月最后一天的时间,例如

2023-01-31 23:59:59:000000 

我只能获取该月的最后一天,时间戳为

2023-01-31 00:00:00:000000 
sql sql-server
2个回答
0
投票

正如 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))

-1
投票

已经有类似的问题有很多答案。你应该肯定能找到你的答案: 在 SQL 中获取该月的最后一天

SQL 查询显示当前月份的结束日期

DECLARE @currentDate DATE = GETDATE()
SELECT EOMONTH (@currentDate) AS CurrentMonthED

SQL 查询显示下个月的结束日期

DECLARE @currentDate DATE = GETDATE()
SELECT EOMONTH (@currentDate, 1 ) AS NextMonthED
© www.soinside.com 2019 - 2024. All rights reserved.