在SQL Query中添加有关日期的条件

时间:2013-01-09 14:00:01

标签: sql

我有这个查询,这有助于我只显示起始日等于今天的记录..

我有一个昨天变量..我需要像这样访问:

$strSQL = "SELECT forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added
FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE forma.data_fillim = '$today'  ORDER BY forma.id DESC"; 

我需要将其修改为:

$strSQL = "SELECT forma.*, SMS_MONTIME.IDTICKET, SMS_MONTIME.MBYLLUR,SMS_MONTIME.time_added
FROM forma 
LEFT JOIN SMS_MONTIME ON forma.ID = SMS_MONTIME.IDTICKET WHERE forma.data_fillim = '$today' AND forma.data_fillim = '$yesterday'  ORDER BY forma.id DESC"; 

由于

2 个答案:

答案 0 :(得分:0)

日期功能因您使用的数据库而异。

如果是Oracle,你可以使用“date - 1”,它会减去一天,在sqlserver和mysql上我不确定那个“快捷方式”但是我确定他们有一个dateadd()或adddate()什么的。

如果您的数据库可以将字符串'$ today'实时解释为日期,那么它也会有所不同,以便您可以在日期函数中使用它

WHERE forma.data_fillim = '$today' OR forma.data_fillim = '$today' - 1

答案 1 :(得分:0)

在黑暗中拍摄,但如何改变AND到OR?如果你已经拥有与昨天相同格式的$昨天,但只是它是一个不同的日期,那么你可以使用OR。或者,您可以使用:

forma.data_fillim in ('$today', '$yesterday')

这还取决于你真正想要做的事情。如果您期望包含$昨天和$ $的商品的结果,那么您可以使用:

(forma.data_fillim >= '$yesterday') and (forma.data_fillim <= '$today')

如果您期望$昨天或$ $项目的结果,那么您可以使用上面的上一个片段(带有IN语句的片段)或使用此

(forma.data_fillim = '$yesterday') or (forma.data_fillim = '$today')

您可以使用BETWEEN语法,这对于MySQL和MSSQL都是如此。我不确定Oracle:

我希望这会有所帮助