2014-10-02 98 views
2

我想獲得上季度和下季度的日期。上季度和下季度

我曾嘗試:

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 

回答

4

檢查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 
0

而且,在許多 現實世界的公司,我已經在過去幾年的工作,是在某個地方一個「有數百年曆史的大桌子」。該表中的其他列提供了針對每個日期的預先計算的商業號碼(無論它們可能是......)。

有一個程序在某處這是(是...)用於填充這個表,這是的全「這樣的計算,」正是讓沒有任何其他程序或查詢有做一樣。相反,他們只是「查看它」。

這張表經常有許多相同的副本散佈出來,它們出現在業務中的大多數查詢中。當業務的日期相關計算是...... 「好,奇怪」 ...(正如他們經常這樣)......這恰好是一個務實和優雅的解決方案。它會將「複雜的計算」推出查詢本身,以支持這些預先計算的數字。