Thursday, June 4, 2009

SQL Date handling

These are formulas that return invoices for yesterday, Month to date, Quarter to date and Year to date. The formula for yesterday's invoices includes a calculation that excludes the weekend. The formula determines if today is Sunday or Monday [ CASE WHEN datepart(dw, getdate()) = 2 or 1 ] and if so subtracts 3 and 2 rather than just today [ getdate() ] less one.

Returns Yesterday's invoices (excluding the weekend)
WHERE (YEAR(M2MDATA01.dbo.armast.finvdate) = YEAR(GETDATE()))
AND (MONTH(M2MDATA01.dbo.armast.finvdate) = MONTH(GETDATE()))
AND (DAY(M2MDATA01.dbo.armast.finvdate) =
CASE WHEN datepart(dw, getdate()) = 2 THEN DAY(DATEADD(dd, - 3, GETDATE())) ELSE CASE WHEN datepart(dw, getdate()) = 1
THEN day(dateadd(dd, - 2, getdate())) ELSE day(dateadd(dd, - 1, getdate())) END END)

Returns MTD invoices
WHERE (YEAR(M2MDATA01.dbo.armast.finvdate) = YEAR(GETDATE())) AND (MONTH(M2MDATA01.dbo.armast.finvdate) = MONTH(GETDATE()))

Returns Quarter to Date invoices
WHERE (YEAR(M2MDATA01.dbo.armast.finvdate) = YEAR(GETDATE())) AND datepart(qq, m2mdata01.dbo.armast.finvdate) = datepart(qq, getdate())

Returns Year to Date invoices
WHERE (YEAR(M2MDATA01.dbo.armast.finvdate) = YEAR(GETDATE()))


No comments:

Post a Comment