0

我有这个查询,它可以帮助我只显示启动日等于今天的记录..

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

$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"; 

谢谢

4

2 回答 2

0

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

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

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

WHERE forma.data_fillim = '$today' OR forma.data_fillim = '$today' - 1
于 2013-01-09T14:02:16.490 回答
0

在黑暗中拍摄,但是将 AND 更改为 OR 怎么样?如果您已经有与 $today 格式相同的 $yesterday 但只是它是不同的日期,那么您可以使用 OR。或者,您可以使用:

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

这也取决于你真正想要做什么。如果您期望包含 $yesterday 和 $today 的项目的结果,那么您可以使用:

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

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

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

您可以使用适用于 MySQL 和 MSSQL 的 BETWEEN 语法。我不确定甲骨文:

我希望这有帮助

于 2013-01-09T14:19:20.773 回答