09/03/2011

Lấy ngày đầu tháng, ngày cuối tháng trong SQL Server

Vấn đề : Làm sao lấy ngày đầu tháng và ngày cuối tháng của tháng này, của tháng trước và tháng sau của tháng hiện tại trong SQL Server?
Giải pháp: Sử dụng các hàm  ngày tháng. Như ví dụ sau:

DECLARE @mydate DATETIME
SELECT @mydate = GETDATE()
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)),@mydate),101) ,
'Ngày cuối tháng trước'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(@mydate)-1),@mydate),101) AS Date_Value,
'Ngày đầu tháng hiện tại' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),@mydate,101) AS Date_Value, 'hôm nay' AS Date_Type
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))),DATEADD(mm,1,@mydate)),101) ,
'Ngày cuối tháng này'
UNION
SELECT CONVERT(VARCHAR(25),DATEADD(dd,-(DAY(DATEADD(mm,1,@mydate))-1),DATEADD(mm,1,@mydate)),101) ,
'Ngày đầu tháng tiếp theo'
GO

Nguồn: http://blog.sqlauthority.com/