1. 程式人生 > >SqlServer查詢本月第一天,上月最後一天

SqlServer查詢本月第一天,上月最後一天

普通:
SELECT    DATEADD(mm, DATEDIFF(m, 0, GETDATE()) - 1, 0) AS '上月第一天', DATEADD(ms, - 3, DATEADD(mm, DATEDIFF(m, 0, GETDATE()), 0)) AS '上月最後一天', DATEADD(mm, DATEDIFF(m, 0, GETDATE()), 0) AS '本月第一天', DATEADD(ms, - 3, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0)) AS '本月最後一天', DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0) AS '下月第一天', DATEADD(ms, - 3, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 2, 0)) AS '下月最後一天'
保留當前時分秒: SELECT
DATEADD(dd, 1 - DAY(DATEADD(mm, - 1, GETDATE())), DATEADD(mm, - 1, GETDATE())) AS '上月第一天', 
DATEADD(dd, - DAY(GETDATE()), GETDATE()) AS '上月最後一天', 
DATEADD(dd, 1 - DAY(GETDATE()), GETDATE()) AS '本月第一天', 
DATEADD(dd, - DAY(DATEADD(mm, 1, GETDATE())), DATEADD(mm, 1, GETDATE())) AS '本月最後一天', 
DATEADD(dd, 1 - DAY(DATEADD(mm, 1, GETDATE())), DATEADD(mm, 1, GETDATE())) AS '下月第一天', 

DATEADD(dd, - DAY(DATEADD(mm, 2, GETDATE())), DATEADD(mm, 2, GETDATE())) AS '下月最後一天'