使用Sql Server 2000
表1
id sdate edate
001 05/01/2012 25/02/2012
002 19/02/2012 17/04/2012
.....
sDate,eDate格式为dd/mm/yyyy
我希望从table1获取每个月的第一天和最后日期,例如01/01/2012 31/01/2012
,01/02/2012 29/02/2012
预期产出
id sdate edate
001 05/01/2012 31/01/2012
001 01/02/2012 25/02/2012
002 19/02/2012 29/02/2012
002 01/03/2012 31/03/2012
002 01/04/2012 17/04/2012
.....
如何查询上述情况?
需要查询帮助
答案 0 :(得分:2)
SELECT
DATEADD(mm, DATEDIFF(mm, 0, sdate), 0),
DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, edate) + 1, 0))
from yourtable;
它实际上是一个两部分的查询:
SELECT DATEADD(mm, DATEDIFF(mm, 0, GETDATE()), 0);
SELECT DATEADD(ms, -3, DATEADD(mm, DATEDIFF(m, 0, GETDATE()) + 1, 0));
以上将为您提供当月的开始日期和结束日期,