首页 > 解决方案 > 我们可以使用 if 条件来比较 2 个日期并在 sql server 中显示该行吗

问题描述

我有 2 个日期列,一个是当前日期,一个是用户定义日期,当用户定义日期比当前日期大 2 天时,我必须显示特定行。
在下面的代码中,当两个日期相等时,我尝试显示该行。但我不知道如何在 sql 中显示该行。

我有以下专栏,

我必须设置3个条件。

  1. 如果两个日期相等意味着应该显示,
  2. 如果 DateTime 比 CRDate 早 2 天意味着我必须显示该行,
  3. 如果 DateTime 比 CRdate 早 1 天,则意味着我必须显示该行。
declare DateTime as datetime1;

select RId if CAST (DateTime as date) =CAST (@CRDateTime as date)

标签: sql-servertsql

解决方案


IF...ELSE语句是一个控制流语句,允许您根据指定条件执行或跳过语句块。

例如:

   IF Boolean_expression
   BEGIN
      -- Statement block executes when the Boolean expression is TRUE
   END
   ELSE
   BEGIN
      -- Statement block executes when the Boolean expression is FALSE
   END

如果要检查 SQL 语句中的某些内容,则应使用该where子句。

它可能看起来像:

SELECT * FROM `[YOUR_TABLE_NAME]` WHERE `DateTime` = `CRDateTime`

如果要检查 2 天十年中的日期,可以使用 SQLDATEADD函数。

它看起来像:

SELECT DATEADD(day, +1, '2017/08/25') AS DateAdd;

此代码的结果是2017/08/26

在您的情况下,它看起来像这样:

SELECT RId where DATEADD(day, +2, DateTime) = CRDateTime

--- 编辑部分: ---

编辑1:

多合一您可以在此处使用此代码:

SELECT RId WHERE 
`DateTime` = `CRDateTime` OR
DATEADD(day, +1, DateTime) = CRDateTime OR
DATEADD(day, +2, DateTime) = CRDateTime

推荐阅读