SQL查询以查找当月的最后一天?

标签 sql sql-server-2008

SELECT DATEADD(s,-1,DATEADD(mm, DATEDIFF(m,0,GETDATE())+1,0))
 LastDay_CurrentMonth

大家好,我有一个查询要找到当月的最后一天,这肯定工作得很好,但我无法理解,因为我有其他类似的要求,必须相应地更改它。

谁能给我解释一下。。
提前致谢

最佳答案

获取现在的日期时间

GETDATE() -- 2011-09-15 13:45:00.923

计算与“1900-01-01”的月份差异
DATEDIFF(m, 0, GETDATE()) -- 1340

将差额加到“1900-01-01”加上一个月
DATEADD(m, DATEDIFF(m, 0, GETDATE())+1, 0) -- 2011-10-01 00:00:00.000

删除一秒钟
DATEADD(s, -1, DATEADD(m, DATEDIFF(m, 0, GETDATE())+1, 0)) -- 2011-09-30 23:59:59.000

关于SQL查询以查找当月的最后一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7429885/

相关文章:

sql - T-SQL 益智游戏 - 给定一个 N 维空间中的单元格,返回沿每个轴与给定单元格内联的单元格

sql - 处理数据转换规则中的动态列选择的技术

java - "parent"表上的 Oracle rownum

sql - 在 SQL Server 2008 Management Studio 中查找存储过程

sql - 如何向具有大量行的现有数据库表添加标识列

数据库组织Oracle

sql - 如何选择用户定义的表类型?

mysql - 如何避免sql查询中的临时表?

mysql - 在表的 JOIN 之前设置 LIMIT

sql - 添加可为空的外键