2016-11-07 41 views
0

工作,我有以下表,命名爲:T-SQL查詢不DATE

Table 1

如果我運行下面的語句:

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

查詢不返回任何行。爲什麼?
我預計在輸出線3 ...

謝謝。

回答

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 
+0

非常感謝。 :) – Andryx93

1

您所有的VALIDA_DAL日期值都小於今天的日期。這將不會返回任何行。

+0

你是什麼意思? – scsimon

+2

你是什麼意思,我的意思是?他問爲什麼他的查詢不返回任何行。這就是爲什麼。 – Pops

+0

我想假設表格只有4行。它回答了爲什麼第3行沒有返回,只是整個數據集的一個相當廣泛的假設。 – scsimon