上个季度和下个季度

时间:2014-10-02 09:48:43

标签: sql sql-server-2008 tsql

我想了解上一季度和下一季度的日期。

我试过了:

SELECT
convert(date, DATEADD(q, DATEDIFF(q,0,GETDATE()) -1 ,0)) FirstQDate,
convert(date, DATEADD(s,-1,DATEADD(q, DATEDIFF(q,0,GETDATE()),0))) LastQDate 

2 个答案:

答案 0 :(得分:10)

检查This

SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE()) - 1, 0)-- First day of last quarter
SELECT DATEADD(dd, -1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()), 0))-- Last day of last quarter
SELECT DATEADD(qq, DATEDIFF(qq, 0, GETDATE()) + 1, 0)-- First day of Next quarter
SELECT DATEADD (dd, -1, DATEADD(qq, DATEDIFF(qq, 0, GETDATE()) +2, 0))-- Last day of Next quarter

答案 1 :(得分:1)

而且,在很多 我多年来工作的大多数现实世界公司中,有一个“数百年的大桌子”值得约会。“该表中的其他列提供了每个日期的预先计算的业务编号(无论它们可能是什么......)。

那里有一个程序,用来填充这个表,它是完全“这样的计算”,正是因为没有其他程序或查询必须做同样的事情。相反,他们只是“查找它。”

这个表通常有许多相同的副本,它们出现在业务的大多数查询中。当与业务的日期相关的计算是...... “好,奇怪” ......(因为他们经常这样)......这恰好是一个务实和优雅的解决方案。它推动了查询本身的“复杂计算”,支持这些预先计算的数字。