DB2中If条件下的日期比较

DB2中If条件下的日期比较,db2,Db2,我有两个日期参数BeginDate和EndDate。我需要比较这两个日期,然后执行一些sql选择。例如,如果BeginDate小于或等于EndDate,则只有我需要查询数据。例如: If @BeginDate <= @EndDate Then select statement1 select statement2 ... End if 当我在DB2中尝试时,我得到了一个错误 请推荐一个具有DB2语法的示例。如果您想简单地执行此操作,只需将条件添加到两个select语句: SE

我有两个日期参数BeginDate和EndDate。我需要比较这两个日期,然后执行一些sql选择。例如,如果BeginDate小于或等于EndDate,则只有我需要查询数据。例如:

If @BeginDate <= @EndDate Then
   select statement1
   select statement2
...
End if
当我在DB2中尝试时,我得到了一个错误


请推荐一个具有DB2语法的示例。

如果您想简单地执行此操作,只需将条件添加到两个select语句:

SELECT * 
FROM <table_name> 
WHERE @BeginDate <= @EndDate;
另一种解决方案是在PL/SQL上下文中使用IF语句来执行SQL:

IF (@BeginDate <= @EndDate) THEN
  statements
END IF;
更完整的内联SQL PL示例如下:

CREATE PROCEDURE EXAMPLE_IF
(IN BeginDate DATE, IN EndDate DATE)
LANGUAGE SQL
BEGIN ATOMIC
  IF (BeginDate <= EndDate)
    THEN 
      statement1;
      statement2;
  END IF;
END!

希望有用

你应该解释更多关于如何以及为什么这是一个更好的答案,谢谢你的回答。我的问题是比较If条件下的日期,然后执行一些select语句集。您能否提供一个特定于Db2语法的if条件的示例。您好,当我使用以下语法时,例如if@BeginDate,如果@BeginDate TITLE:Microsoft SQL Server Report Builder------------------执行查询时发生错误,则会出现意外的标记。[DB2/AIX64]SQL0104N如果@BeginDate