首页 > 解决方案 > 通过使用 SQL Server 2008 给出默认的月份日期来计算日期

问题描述

我需要通过从另一个日期中减去一个日期来计算未来的日期。问题是我要减去的日期字段在一个月中有很多天......即 2020 年 10 月 27 日或 2020 年 11 月 30 日。我需要做的是,无论月份是哪一天,我都需要减去月份,就好像它是一个月的第一天一样,不管它是什么。

因此,例如我有一个日期 12/31/2020 我需要从该日期减去另一个日期 10/23/2020 但我需要默认 10/23/2020 到 10/01/2020 并且对于任何其他日期都相同我会从原始日期中减去。有任何想法吗?

标签: sqlsql-server

解决方案


您可以获取该月的第一天,然后使用 datediff 获取日期差异。

DECLARE @table table(fromdate date,todate date)

insert into @table
VALUES ('2020-10-27','2020-12-31')

SELECT datediff(day, DATEADD(month, DATEDIFF(month, 0, fromdate), 0),todate) AS DifferenceDays
from @table
+----------------+
| DifferenceDays |
+----------------+
|             91 |
+----------------+

推荐阅读