今天和更早的日期之间的SQL
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了今天和更早的日期之间的SQL相关的知识,希望对你有一定的参考价值。
我正在查询我正在处理的项目。我必须提出一个查询,向我显示今天的日期和将来的日期。目前我的查询是这样的:
$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个表格,所以如果我们的客户,我可以将维护日期与数字相匹配。
对于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";
你可以尝试这个代码
$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
是onderhoudsLog.onderhoudsDatum日期字段,然后使用'> = CURRENT_DATE'而不是'喜欢“2017%”'并按onderhoudsLog.onderhoudsDatum排序
以上是关于今天和更早的日期之间的SQL的主要内容,如果未能解决你的问题,请参考以下文章
试图找到如何在两个日期之间从 SQL 数据库中提取数据 [重复]
08001 - SQL Server Native Client 11.0 不支持连接到SQL Server 2000或更早的版本。