【发布时间】:2016-07-11 07:59:32
【问题描述】:
我需要 SQL 来获取yyyyMMdd 格式的当月开始和结束(当月的 1 到当月的 28/30/31)以及一周,但一周应该是从周日到周六
我用了一周的开始日期
SELECT CONVERT(INT, CONVERT(VARCHAR(8), DATEADD(WEEK, DATEDIFF(WEEK, 0, SYSDATETIME()), 0), 112)
周末结束日期
SELECT CONVERT(INT, CONVERT(VARCHAR(8), DATEADD(WEEK, DATEDIFF(WEEK, 0, SYSDATETIME()) + 1, 0), 112))
月份开始
SELECT CONVERT(INT, CONVERT(VARCHAR(6), SYSDATETIME(), 112) + '01')
月末
SELECT CONVERT(INT, CONVERT(VARCHAR(6), DATEADD(MONTH, 1, SYSDATETIME()), 112) + '01')
但问题是周给我从星期一到星期一的星期日期,而月结束日期给我下个月开始的结束日期 (20160801)
结果应该是
Week from 20160710 to 20160716
Month from 20160701 to 20160731
请帮我改正。
【问题讨论】:
标签: sql sql-server sql-server-2008