根据过去一个月确定两个日期之间的天/月差异

时间:2013-03-18 14:15:10

标签: sql sql-server

我必须实施一个解决方案,两个日期之间的差异可以是几个月或几天。

例如我在日期date1date2上开设了两个帐户。我应该找到日期差异超过一个月或少于一个月。

实例1 -

Date1 - 30-01-2007
Date2 - 01-03-2007

虽然日期差异为30天,但不到一个月,但如果您看到整个2月份已经过去,那么它应该落在1个月的范围内。

实例2 -

Date1 - 26-11-2007
Date2 - 26-12-2007

这里的日期差异是30天,因为月份过去是2007年11月,它应该与30比较。因此它是1个月

实例3 -

Date1 - 16-02-2010
Date2 - 17-03-2010

虽然日期差异为29天,但自2010年以来已经过去了。它应该与28进行比较。因此它再次为1个月。

Datediff没有给出正确的结果。对于下面提到的日期,结果是1.但结果应该是2。

select datediff(month,'2007-01-01','2007-02-28')

请帮忙。

1 个答案:

答案 0 :(得分:0)

你将不得不手动完成。

使用日期差异,但传递天数。即:

select datediff(day,'2007-01-01','2007-02-28')

使用此号码,找出是哪个月份。即:

select datepart(month,'2007-01-01')

然后根据月份和过去的天数使用案例陈述。