TSQL - 案例日期比较(TSQL - Case Date Compare)

2019-10-17 08:07发布

我想比较SQL日期,并创建一个新的领域,让我组的结果通过今天的日期和其他日期(或多个)。 我都转换日期CHAR。 但是我得到附近=和表达错误) - 这是一个SSRS报告。

已经有一个相当复杂的SQL语句,我只是想添加这个额外的语句分组帮助。

下面是一个例子。

情况下,当转换(CHAR(8),FieldDate,103)=转换(CHAR(8),GETDATE(),103)。然后tmpDate = '1' ELSE tmpDate = '0' END

这导致一个不正确的sntax邻近“=”这导致一个不正确的sntax邻近“)”

谢谢

Answer 1:

为什么不日期直接比较?

CASE WHEN DATEDIFF(day, FieldDate, GETDATE()) = 0 THEN 1 ELSE 0 END AS tmpDate


Answer 2:

移动领域的面前:

select tmpDate = 
    CASE
    WHEN Convert(Char(8), FieldDate, 103) = Convert(Char(8), GetDate(), 103) Then  '1' 
    ELSE '0' END


Answer 3:

如果您的例子是从您的代码(复制/粘贴),“然后tmpDate - ‘1’”将无法正常工作。 你把一个连字符,而不是一个等号?



文章来源: TSQL - Case Date Compare