среда, 3 сентября 2008 г.

Использование функций для работы с датами

—-сегодня
SELECT GETDATE()
—-вчера
SELECT DATEADD(d,-1,GETDATE())
—-первый день текущей недели
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0)
—-последний день текущей недели
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),6)
—-первый день предыдущей недели
SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),0)
—-последний день предыдущей недели
SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),6)
—-первый день текущего месяца
SELECT DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)
—-последний день текущего месяца
SELECT DATEADD(ms,- 3,DATEADD(mm,0,DATEADD(mm,DATEDIFF(mm,0,GETDATE())+1,0)))
—-первый день предыдущего месяца
SELECT DATEADD(mm,-1,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0))
—-последний день предыдущего месяца
SELECT DATEADD(ms,-3,DATEADD(mm,0,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)))
—-первый день текущего года
SELECT DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)
—-последний день текущего года
SELECT DATEADD(ms,-3,DATEADD(yy,0,DATEADD(yy,DATEDIFF(yy,0,GETDATE())+1,0)))
—-первый день предыдущего года
SELECT DATEADD(yy,-1,DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0))
—-последний день предыдущего года
SELECT DATEADD(ms,-3,DATEADD(yy,0,DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0)))

http://blog.sqlauthority.com/



--первый понедельник месяца
DATEADD(wk, DATEDIFF(wk,0, dateadd(dd,6-datepart(day,'2009-02-09'),'2009-02-09') ), 0)

http://en.allexperts.com/q/MS-SQL-Server-1801/2008/5/Code-find-first-monday-1.htm

Комментариев нет:

Locations of visitors to this page