【问题标题】:Identify difference in Days/Months between two dates based on the past month根据过去一个月确定两个日期之间的天数/月数差异
【发布时间】:2013-03-18 14:15:09
【问题描述】:

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

例如我在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')

请帮忙。

【问题讨论】:

标签: sql sql-server


【解决方案1】:

您将不得不手动完成。

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-04-07
    • 2014-10-12
    • 1970-01-01
    • 2011-06-06
    相关资源
    最近更新 更多