首页 > 解决方案 > SQL如何显示退货和购买日期之间的月差

问题描述

我需要帮助编写查询,说明退货日期和购买日期之间的月差,请参见下面的示例。

产品 购买日期(日/月/年) 返回日期(日/月/年) 月(预期结果)
车A 2021 年 1 月 1 日 15/01/2021 月0
B车 2021 年 1 月 1 日 20/02/2021 第1个月
车C 2021 年 1 月 1 日 01/03/2021 第2个月

其中 Month0 = 同月,Month1 = 下个月,依此类推。

我考虑过使用 MONTH 功能。像 MONTH(ReturnDate) - MONTH(PurchaseDate) 这样的东西,但是,当我有不同的年份时,我发现了一个问题。感谢您的帮助。

提前致谢!

标签: sqlsql-server

解决方案


您可以datediff在 MS SQL 中使用函数。我假设这在您的 SQL 版本中可用。

在以下示例中,我使用的是日期格式,但您可以根据您的示例mm/dd/yyyy将其更改为。dd/mm/yyyy

select 'Month' + cast(datediff(month, '01/01/2021', '01/15/2021') as varchar)

select 'Month' + cast( datediff(month, '01/01/2021', '02/20/2022') as varchar)

-- output statement 1
Month0

-- output statement 2
Month13


推荐阅读