代码之家  ›  专栏  ›  技术社区  ›  Bala

如何比较SQL Server中的两个日期

  •  0
  • Bala  · 技术社区  · 4 年前

    我有一根绳子 2021-02-23T06:58:51 CAST 还是一样的错误。

    select convert(smalldatetime, '2021-02-23T06:58:51') > convert(smalldatetime, GETDATE())
    
    Started executing query at Line 1
    Msg 102, Level 15, State 1, Line 1
    Incorrect syntax near '>'.
    Total execution time: 00:00:00.040
    
    2 回复  |  直到 4 年前
        1
  •  2
  •   Thom A    4 年前

    正如我在注释中所说的,列需要定义为标量表达式。您的表达式不是标量表达式,而是布尔表达式:

    convert(smalldatetime, '2021-02-23T06:58:51') > convert(smalldatetime, GETDATE())
    

    WHERE . 一、 e.显示行,其中 {column} 大于当前日期和时间。

    你可能想要的是 CASE 表达式或 IIF :

    SELECT CASE WHEN '2021-02-23T06:58:51' > GETDATE() THEN 1 END 0 END;
    SELECT IIF('2021-02-23T06:58:51' > GETDATE(),1,0);
    
        2
  •  1
  •   perry147    4 年前

    选择IIF(convert(smalldatetime,'2021-02-23T06:58:51')>convert(smalldatetime,GETDATE()),'True','False')