如何比较两个日期并找出日期差异是否在3个月内在SQL Server中?

问题描述:

有谁知道如何比较两个日期,并找出日期差异是否在3个月内在SQL Server?如何比较两个日期并找出日期差异是否在3个月内在SQL Server中?

例如,如果我有2个日期:

Start_Date = '2013-02-01' 
End_Date = '2013-04-10' 

我如何比较两个日期,并找出日期差异是否是在SQL Server中3个月内?

+0

'其中DATEDIFF(男,日期,结束日期) 2013-04-10 01:39:05

+0

什么是 “三个月内” 的意思是(完全一致)?例如,2月28日和5月31日(相隔92天,非闰年)“三个月内”? 2月1日和5月31日(相隔109天,非闰年)如何? “三个月内”的定义是否在闰年发生变化? – 2013-04-10 03:23:51

考虑使用DATEDIFF

SELECT * 
FROM YourTable 
WHERE DATEDIFF(month, start_date, end_date) <= 3 

SQL Fiddle Demo

MSDN:http://msdn.microsoft.com/en-us/library/ms189794.aspx

下面是一个使用你在你的问题中提供的两个日期的答案。我给你两种方式。第一栏是3个月内的比较。第二列仅仅是SQL Server系统功能DATEDIFF的结果。

DECLARE @Start_Date DATE = '2013-02-01', 
     @End_Date DATE = '2013-04-10' 

SELECT CASE 
      WHEN datediff(MONTH, @Start_Date, @End_Date) <= 3 THEN 
       'True' 
      ELSE 
       'False' 
     END AS [WithinThreeMonths] 
    , datediff(MONTH, @Start_Date, @End_Date) [Months]