Find First and Last Day of the Current Quarter in SQL Server

I was recently working on a requirement where the user wanted a report with data from the First day to the Last Day of the current Quarter

Here's a simple way to find the Find First and Last Day of the current quarter in SQL Server 2005/2008


SELECT DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0) as FirstDayOfQuarter


SELECT DATEADD(qq,DATEDIFF(qq,-1,GETDATE()),-1) as LastDayOfQuarter




OUTPUT


FirstDayOfQuarter         LastDayOfQuarter


2009-04-01 00:00:00.000   2009-06-30 00:00:00.000


9 comments:

  1. Thank you very much, also it works for first day of the month, quarter and year.

    It's really a gem.

    ReplyDelete
  2. Thats great - any ideas how to do this in the code of ssrs i.e. in c#?

    Thanks :)

    ReplyDelete
  3. Thanks..its working..
    But i didn't get d logic..

    If possible plz Mention d logic

    ......MAster ANil

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. Thank you very much. Is there a easy way to get the first day and the last day of the previous quarter?

    ReplyDelete
  6. To get the First Day and Last Day of 'Last' quarter, try this query

    SELECT DATEADD(qq,DATEDIFF(qq,0,GETDATE())-1,0) as FirstDayOfLastQuarter

    SELECT DATEADD(qq,DATEDIFF(qq,0,GETDATE()),-1) as LastDayOfLastQuarter

    ReplyDelete
  7. beautiful code!

    I needed first and last days of *last* quarter for my requirements, so I did:

    SELECT DATEADD(qq,-1,DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0))
    SELECT DATEADD(qq,-1,DATEADD(qq,DATEDIFF(qq,-1,GETDATE()),-1))

    ReplyDelete
  8. oops--sorry--didn't see your last comment where you already did the first and last day of last quarter!

    ReplyDelete