今天和更早的日期之间的SQL

问题描述 投票:0回答:3

我正在查询我正在处理的项目。我必须提出一个查询,向我显示今天的日期和将来的日期。目前我的查询是这样的:

$query = "SELECT * FROM systeem 
RIGHT JOIN vestiging ON vestiging.id = systeem.vestigingID 
LEFT JOIN systeemMeldkamer ON systeemMeldkamer.systeemID = systeem.id 
LEFT JOIN meldkamers ON meldkamers.id = systeemMeldkamer.meldkamerID 
LEFT JOIN systeemContract ON systeemContract.systeemID = systeem.id 
LEFT JOIN onderhoudsLog ON onderhoudsLog.systeemContractID = systeemContract.id  
LEFT JOIN contracten ON contracten.ident = systeemContract.contractIDENT
WHERE onderhoudsLog.onderhoudsDatum  LIKE '2017%'  
ORDER BY onderhoudsLog.onderhoudsDatum ASC";

此查询将为我提供所有类似“2017%”的日期。相反,我希望得到今天的日期和今天之后的每个日期:

今天是:2018-03-05

我希望得到的结果:2018-03-05,2018-03-06,2018-03-07

明天它是:2018-03-06然后它必须搜索2018-03-06之后的所有日期

我希望任何人都能帮助我查询!不要介意“LEFT JOINS”,因为我必须通过6个表格,所以如果我们的客户,我可以将维护日期与数字相匹配。

php sql
3个回答
3
投票

对于MySQL,您可以使用以下查询。添加where子句,如:WHERE onderhoudsLog.onderhoudsDatum >= CURDATE()

假设onderhoudsDatum字段是datetime数据类型

$query = "SELECT * FROM systeem 
RIGHT JOIN vestiging ON vestiging.id = systeem.vestigingID 
LEFT JOIN systeemMeldkamer ON systeemMeldkamer.systeemID = systeem.id 
LEFT JOIN meldkamers ON meldkamers.id = systeemMeldkamer.meldkamerID 
LEFT JOIN systeemContract ON systeemContract.systeemID = systeem.id 
LEFT JOIN onderhoudsLog ON onderhoudsLog.systeemContractID = systeemContract.id  
LEFT JOIN contracten ON contracten.ident = systeemContract.contractIDENT
WHERE onderhoudsLog.onderhoudsDatum >= CURDATE()  
ORDER BY onderhoudsLog.onderhoudsDatum ASC";

0
投票

你可以尝试这个代码

$today = date('Y-m-d');

$query = "SELECT * FROM systeem 
  RIGHT JOIN vestiging ON vestiging.id = systeem.vestigingID 
  LEFT JOIN systeemMeldkamer ON systeemMeldkamer.systeemID = systeem.id 
  LEFT JOIN meldkamers ON meldkamers.id = systeemMeldkamer.meldkamerID 
  LEFT JOIN systeemContract ON systeemContract.systeemID = systeem.id 
  LEFT JOIN onderhoudsLog ON onderhoudsLog.systeemContractID = systeemContract.id  
  LEFT JOIN contracten ON contracten.ident = systeemContract.contractIDENT
  WHERE onderhoudsLog.onderhoudsDatum  => $today  
  ORDER BY onderhoudsLog.onderhoudsDatum ASC";

您使用PHP的date()函数获取日期,将其格式化为MySql日期字符串,然后在查询中使用它:

WHERE onderhoudsLog.onderhoudsDatum  => $today

0
投票

是onderhoudsLog.onderhoudsDatum日期字段,然后使用'> = CURRENT_DATE'而不是'喜欢“2017%”'并按onderhoudsLog.onderhoudsDatum排序

© www.soinside.com 2019 - 2024. All rights reserved.