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/