T-SQL查询不适用于DATE

时间:2016-11-07 21:29:50

标签: sql-server tsql date

我有下表,名为SC17 P 090212132329.89 X25A P 090212132330.50 AMTX P 090216182814.12 X29A P 090216182813.70 Y28A P 090216182822.36 MSTX P 090216182826.80 Y27A P 090216182831.43

Table 1

如果我运行以下声明:

E_TARIFFE

查询不会返回任何行。为什么呢?
我期待输出中的第3行......

感谢。

2 个答案:

答案 0 :(得分:2)

你有倒退的逻辑:

WHERE COD_EVENTO = 1 AND
      PAGAMENTO_UNICO = 1 AND
      VALIDA_DAL <= CONVERT(DATE, GETDATE()) AND -- Today, 2016-11-07
      VALIDA_AL >= CONVERT(DATE, GETDATE())

虽然我不是BETWEEN日期的粉丝,但你可以更好地遵循这个:

 WHERE COD_EVENTO = 1 AND
      PAGAMENTO_UNICO = 1 AND
      CONVERT(DATE, GETDATE()) BETWEEN VALIDA_DAL AND VALIDA_AL

答案 1 :(得分:1)

您所有的VALIDA_DAL日期值都低于今天的日期。这将不返回任何行。