我想了解上一季度和下一季度的日期。
我试过了:
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
答案 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)
而且,在很多 我多年来工作的大多数现实世界公司中,有一个“数百年的大桌子”值得约会。“该表中的其他列提供了每个日期的预先计算的业务编号(无论它们可能是什么......)。
那里有一个程序,用来填充这个表,它是完全“这样的计算”,正是因为没有其他程序或查询必须做同样的事情。相反,他们只是“查找它。”
这个表通常有许多相同的副本,它们出现在业务的大多数查询中。当与业务的日期相关的计算是...... “好,奇怪” ......(因为他们经常这样)......这恰好是一个务实和优雅的解决方案。它推动了查询本身的“复杂计算”,支持这些预先计算的数字。