Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.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
尝试解决MySQL select查询中的日期条件_Mysql_Sql_Date - Fatal编程技术网

尝试解决MySQL select查询中的日期条件

尝试解决MySQL select查询中的日期条件,mysql,sql,date,Mysql,Sql,Date,我试图列出即将交付的货物,仍然可以选择装运。每一批货物都需要一定的交货期,因此,如果你在前一天下午5点下单,那么期望明天交货是不现实的 deliveries表定义了一个“leadTime”,它是天数的整数,还定义了一个“nextDate”,它包含一个“YYYY-MM-DD”格式的日期字段。我需要过滤掉“nextDate”至少还有一天的行,或者更确切地说,如果是在上午10点之前,则是一天,如果是在上午10点之后,则是两天 SELECT d.* FROM delivery d WHERE d.nex

我试图列出即将交付的货物,仍然可以选择装运。每一批货物都需要一定的交货期,因此,如果你在前一天下午5点下单,那么期望明天交货是不现实的

deliveries表定义了一个“leadTime”,它是天数的整数,还定义了一个“nextDate”,它包含一个“YYYY-MM-DD”格式的日期字段。我需要过滤掉“nextDate”至少还有一天的行,或者更确切地说,如果是在上午10点之前,则是一天,如果是在上午10点之后,则是两天

SELECT d.* FROM delivery d
WHERE d.nextDate >= DATE_ADD( CURRENT_DATE, INTERVAL d.leadTime DAY )
ORDER BY d.nextDate ASC, d.id ASC
例如,(假设交付周期为一天)。如果是星期三上午9点,我可以看到从星期四开始的所有记录。但是,如果是星期三上午11点,我只能从星期五开始看(因为是上午10点以后,所以没有足够的时间准备)。

使用
日期(现在()+间隔14小时)
代替
当前日期
,或者将整个事件组合在一起:

SELECT   *
FROM     delivery
WHERE    nextDate >= DATE(NOW() + INTERVAL 14 HOUR + INTERVAL leadTime DAY)
ORDER BY nextDate ASC, id ASC
使用
DATE(NOW()+INTERVAL 14 HOUR)
代替
CURRENT_DATE
或将整个事件组合在一起:

SELECT   *
FROM     delivery
WHERE    nextDate >= DATE(NOW() + INTERVAL 14 HOUR + INTERVAL leadTime DAY)
ORDER BY nextDate ASC, id ASC