1

使用 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/201201/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
.....

如何查询上述条件?

需要查询帮助

4

1 回答 1

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));

以上将为您提供当月的开始日期和结束日期,

于 2012-05-31T06:37:13.337 回答