gpt4 book ai didi

php - PHP/MySQL 中的 Where 子句

转载 作者:行者123 更新时间:2023-11-29 02:27:47 25 4
gpt4 key购买 nike

我的表中有以下记录,名为“rooms_prices”

id  room_id     date_from   date_to price
55 11 02/01/2014 12/31/2014 2250

每当我尝试在我的 PHP 代码中执行 SQL 语句时,当我查询的日期不在日期范围内时,我总是得到一个结果。

这是我的 SQL 语句:

SELECT price FROM rooms_prices WHERE room_id = 11 AND DATE_FORMAT( date_from, '%m/%d/%Y' ) <= '12/01/2013' AND DATE_FORMAT( date_to, '%m/%d/%Y' ) >= '12/01/2013'

此 SQL 语句始终输出 2250。如果日期在 02/01/2014 和 12/31/2014 之间,它应该只返回记录。

有人知道如何解决这个问题吗?

最佳答案

按Y-M-D顺序使用日期格式:

SELECT price
FROM rooms_prices
WHERE room_id = 11 AND
DATE_FORMAT( date_from, '%Y-%m-%d' ) <= '2013-12-01' AND
DATE_FORMAT( date_to, '%Y-%m-%d' ) >= '2013-12-01';

您正在将比较作为字符串进行,这就是您的版本失败的原因。

按日期进行比较实际上会更好:

SELECT price
FROM rooms_prices
WHERE room_id = 11 AND
date_from <= date('2013-12-01') AND
date_to >= date('2013-12-01');

或者甚至只是使用 between:

WHERE room_id = 11 AND
date('2013-12-01') between date_from and date_to

关于php - PHP/MySQL 中的 Where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18418205/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com