计算该季度的最后一天

Bob*_*bst 7 sql sql-server date

计算上一季度最后一天的最有效方法是什么?

示例:给定日期为11/19/2008,我想返回2008年9月30日.

平台是SQL Server

Cha*_*ana 20

如果@Date有相关日期

Select DateAdd(day, -1, dateadd(qq, DateDiff(qq, 0, @Date), 0)) 
Run Code Online (Sandbox Code Playgroud)

编辑:感谢下面的@strEagle,更简单的是:

Select dateadd(qq, DateDiff(qq, 0, @Date), -1) 
Run Code Online (Sandbox Code Playgroud)


小智 9

实际上更简单的是:

SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), -1)
Run Code Online (Sandbox Code Playgroud)


小智 5

获取当前日期

SELECT CONVERT(DATE,GETDATE()) [Current Date]
Run Code Online (Sandbox Code Playgroud)

获取当前日期的季度的第一个日期

SELECT CONVERT(DATE, DATEADD(QQ, DATEDIFF(QQ, 0, GETDATE())  ,0)) [Current Quarter 1st Date]
Run Code Online (Sandbox Code Playgroud)

获取当前日期的季度的最后日期

SELECT CONVERT(DATE,DATEADD(d, -1, DATEADD(q, DATEDIFF(q, 0, GETDATE()) +1, 0))) [Current Quarter Last Date]
Run Code Online (Sandbox Code Playgroud)

获取当前日期的下一季度的第一个日期

SELECT CONVERT(DATE, DATEADD(QQ, DATEDIFF(QQ, 0, GETDATE()) +1 ,0)) [Next Quarter 1st Date]
Run Code Online (Sandbox Code Playgroud)

获取当前日期的下一季度的最后日期

SELECT CONVERT(DATE,DATEADD(d, -1, DATEADD(q, DATEDIFF(q, 0, GETDATE()) +2, 0))) [Next Quarter Last Date]
Run Code Online (Sandbox Code Playgroud)

  • 我认为如果您能解释一下您所做的事情那就太好了。然后,更多的人将能够理解您的建议。 (2认同)