Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在韩元和x27之间选择;你不能使用MySQL吗?_Php_Mysql - Fatal编程技术网

Php 在韩元和x27之间选择;你不能使用MySQL吗?

Php 在韩元和x27之间选择;你不能使用MySQL吗?,php,mysql,Php,Mysql,我有一个快速和尽快的问题 SELECT `deals`.* FROM `deals` WHERE `is_featured` = 1 AND `status` = 'active' AND CURDATE() BETWEEN start_date AND DATE_ADD(end_date, INTERVAL 1 DAY) ORDER BY `end_date` DESC LIMIT 1 是这样吗 开始日期是“2012-01-11 00:00:00”,而

我有一个快速和尽快的问题

SELECT `deals`.*
  FROM `deals`
  WHERE
    `is_featured` = 1 AND
    `status` = 'active' AND
    CURDATE() BETWEEN start_date AND DATE_ADD(end_date, INTERVAL 1 DAY)
  ORDER BY `end_date` DESC
  LIMIT 1
是这样吗

开始日期是“2012-01-11 00:00:00”,而
结束日期是“2012-01-11 23:59:59”

这就是我想展示的:

我想显示介于当前日期时间和
为1且
状态为“活动”之间的dealoffer

CURDATE()


它应该只选择一个交易,并且此交易应该是与当前日期时间最接近的结束日期。

这是您的原始查询

SELECT `deals`.* FROM `deals`
WHERE `is_featured` = 1
AND `status` = 'active'
AND CURDATE() BETWEEN start_date AND DATE_ADD(end_date, INTERVAL 1 DAY)
ORDER BY `end_date` DESC
LIMIT 1;
用这个替换中间的

SELECT `deals`.* FROM `deals`
WHERE `is_featured` = 1
AND `status` = 'active'
AND start_date >= (CURDATE() + INTERVAL 0 SECOND)
AND start_date <= (end_date + INTERVAL 1 DAY)
ORDER BY `end_date` DESC
LIMIT 1;

您可以使用curtime()函数检索当前时间。

使用
now()
获取日期和时间。

是否有关于未来日期的交易?如果没有,也许你可以找到一个与最大日期代替?或者,如果有未来的日期,您是否可以查找小于当前日期的最大日期?这应该可以。你有什么错误?顺便说一句,NOW()将为您返回当前日期时间。开始日期和结束日期是什么数据类型?顺便说一句,日期将扩展为日期00:00:00 ie。。2012-01-01 00:00:00
ALTER TABLE deals ADD INDEX (is_featured,status,start_date,end_date);