Get first day of current year:
SELECT *
FROM tbl
WHERE (tbl.datefield = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0))
Get last day of current year:
SELECT *
FROM tbl
WHERE DATEADD(dd,-1,DATEADD(yy,0,DATEADD(yy,DATEDIFF(yy,0,getdate())+1,0)))
Get first day of current month:
SELECT *
FROM tbl
WHERE select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0)
Get first day of last month:
SELECT *
FROM tbl
WHERE DATEADD(mm, DATEDIFF(mm,0,DATEADD(mm,-1,getdate())), 0)
Get month part of a datetime field.
DATEPART(MONTH, A.AEDAT)
Get year part of a datetime field.
DATEPART(YEAR, A.AEDAT)
Cast field to char.
CAST(aField AS char(4))
Set 2 digit literal with trailing 0.
RIGHT('0' + RTRIM(MONTH(A.AEDAT)), 2)
Get Date Part Only of Datetime Field
CONVERT(varchar(8), GETDATE(), 112)
Get Time Part Only of Datetime Field
CONVERT(varchar(8), GETDATE(), 108)
Get Yesterday Date
DATEADD(DAY,DATEDIFF(DAY,'20000102',GETDATE()),'20000101')
And many else (from shanecooper.net)
Monday of the Current Week
select DATEADD(wk, DATEDIFF(wk,0,getdate()), 0)
Sunday of the Current Week
set DATEFIRST 1
select DATEADD(dd, 1 - DATEPART(dw, getdate()), getdate())
First Day of the Year
select DATEADD(yy, DATEDIFF(yy,0,getdate()), 0)
First Day of the Quarter
select DATEADD(qq, DATEDIFF(qq,0,getdate()), 0)
Midnight for the Current Day
select DATEADD(dd, DATEDIFF(dd,0,getdate()), 0)
Last Day of Prior Month
select dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate() ), 0))
Last Day of Prior Year
select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate() ), 0))
Last Day of Current Month
select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate() )+1, 0))
Last Day of Current Year
select dateadd(ms,-3,DATEADD(yy, DATEDIFF(yy,0,getdate() )+1, 0))
First Monday of the Month
select DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,getdate()),getdate()) ), 0)