Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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 CURDATE()+间隔1天未按预期返回_Mysql_Sql_Datetime - Fatal编程技术网

MySQL CURDATE()+间隔1天未按预期返回

MySQL CURDATE()+间隔1天未按预期返回,mysql,sql,datetime,Mysql,Sql,Datetime,我被难住了 我有一个表,它有一个字段job\u date\u start,数据类型设置为DATETIME 如果我从表中选择作业\日期\开始;从我的表格中,输出为: +---------------------------+ | job_date_start | +---------------------------+ | 2021-02-26 12:00:00 | +---------------------------+ 如果我现在选择;从同一张表中,我得

我被难住了

我有一个表,它有一个字段job\u date\u start,数据类型设置为DATETIME

如果我从表中选择作业\日期\开始;从我的表格中,输出为:

+---------------------------+
|      job_date_start       |
+---------------------------+
|    2021-02-26 12:00:00    |
+---------------------------+
如果我现在选择;从同一张表中,我得到:

+---------------------------+
|           NOW()           |
+---------------------------+
|    2021-02-25 17:41:01    |
+---------------------------+
那么,当我使用以下命令时,为什么返回空结果

SELECT * FROM table WHERE job_date_start = curdate() + interval 1 day;
根据许多堆栈溢出问题,我的语法是正确的。。我有些不明白。

工作日期开始似乎有时间成分。您需要一个日期范围或仅需要日期:

WHERE job_date_start >= curdate() + interval 1 day and
      job_date_start < curdate() + interval 2 day ;
第一种方法对于索引更安全。

job\u date\u start似乎有时间成分。您需要一个日期范围或仅需要日期:

WHERE job_date_start >= curdate() + interval 1 day and
      job_date_start < curdate() + interval 2 day ;

第一种方法对于索引更安全。

在比较日期和日期时间时,日期时间不会自动减少为日期,而是将日期延长为日期时间,其时间设置为00:00:00。您不会返回该行,因为时间戳“2021-02-26 12:00:00”时间戳“2021-02-26 00:00:00”。@ThorstenKettner-现在有意义了-那么,无论何时选择明天最简单的方法是什么?我想选择第二天,即使现在是2021-02-25 23:59:59,作业日期开始是2021-02-26 01:01:00..Gordon的第一个查询是我通常使用的,因为表中有大量的天,datetime列上有一个索引,DBMS可以非常快速地运行查询,因为它可以快速地找到几行,就像我们在电话簿中很快找到姓氏一样,因为它们是索引的,即条目是按姓氏排序的。戈登的另一个查询的优点是更容易阅读。但速度可能慢得多。在将日期与日期时间进行比较时,日期时间不会自动缩减为日期,而是将日期扩展为日期时间,并将其时间设置为00:00:00。您不会返回该行,因为时间戳“2021-02-26 12:00:00”时间戳“2021-02-26 00:00:00”。@ThorstenKettner-现在有意义了-那么,无论何时选择明天最简单的方法是什么?我想选择第二天,即使现在是2021-02-25 23:59:59,作业日期开始是2021-02-26 01:01:00..Gordon的第一个查询是我通常使用的,因为表中有大量的天,datetime列上有一个索引,DBMS可以非常快速地运行查询,因为它可以快速地找到几行,就像我们在电话簿中很快找到姓氏一样,因为它们是索引的,即条目是按姓氏排序的。戈登的另一个查询的优点是更容易阅读。但是它可以慢得多。好的,这完全可以解释为什么会发生。。我用了后者,因为它看起来干净多了。。我把它当作一个通知。。没有任何涉及Dok的索引完全可以解释为什么会发生这种情况。。我用了后者,因为它看起来干净多了。。我把它当作一个通知。。没有涉及索引