0

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

例如,我在日期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 年 2 月。它应该与 28 进行比较。因此它又是 1 个月。

Datediff 没有给出正确的结果。对于下面提到的 datediff,结果是 1。但结果实际上应该是 2。

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

请帮忙。

4

1 回答 1

0

您将不得不手动执行此操作。

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

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

使用这个数字,找出是哪个月份。IE:

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

然后根据月份和经过的天数使用 case 语句。

于 2013-03-18T14:59:40.670 回答