Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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/79.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 查询同一日期之间的数据_Mysql_Sql_Database_Mariadb - Fatal编程技术网

Mysql 查询同一日期之间的数据

Mysql 查询同一日期之间的数据,mysql,sql,database,mariadb,Mysql,Sql,Database,Mariadb,有可能这样做吗 select * from table where Date BETWEEN '2019-05-29' AND '2019-05-29' 是的,这是可能的。如果您有时间段,您可以使用函数跳过它: SELECT * FROM table WHERE DATE(Date) BETWEEN '2019-05-29' AND '2019-05-29' -- it may degrade performance, condition is not SARGable 是的,这是可能的。如

有可能这样做吗

select * from table where Date BETWEEN '2019-05-29' AND '2019-05-29'

是的,这是可能的。如果您有时间段,您可以使用函数跳过它:

SELECT * FROM table WHERE DATE(Date) BETWEEN '2019-05-29' AND '2019-05-29'
-- it may degrade performance, condition is not SARGable

是的,这是可能的。如果您有时间段,您可以使用函数跳过它:

SELECT * FROM table WHERE DATE(Date) BETWEEN '2019-05-29' AND '2019-05-29'
-- it may degrade performance, condition is not SARGable

是的,但更好的方法是:

select t.*
from table t
where t.Date >= date('2019-05-29') AND 
      t.Date < date('2019-05-29') + interval 1 day
选择t*
来自表t
其中t.日期>=日期('2019-05-29'),以及
t、 日期<日期('2019-05-29')+间隔1天

为什么这样更好?它在列名上没有函数,因此它可以使用
日期
列上的索引。

是的,但更好的方法是:

select t.*
from table t
where t.Date >= date('2019-05-29') AND 
      t.Date < date('2019-05-29') + interval 1 day
选择t*
来自表t
其中t.日期>=日期('2019-05-29'),以及
t、 日期<日期('2019-05-29')+间隔1天

为什么这样更好?它在列名上没有函数,因此它可以使用
日期
列上的索引。

是的,如果希望在测试窗口中运行它而不手动更改代码中的日期,可以将其设置为变量。使用TRUC消除时间,即不会有29-05-2019 23:59:00。如果您希望在一个时间段内使用相同的日期,请删除trunc,然后您可以设置小时分秒,从而使查询更精确

SELECT t.*
FROM table t
WHERE t.date BETWEEN trunc(to_date(:datefrom, 'dd.mm.yyyy hh24:mi:ss')) AND
                     trunc(to_date(:dateto, 'dd.mm.yyyy hh24:mi:ss'))

是的,您可以,如果您希望在测试窗口中运行它而不手动更改代码中的日期,您可以将其设置为变量。使用TRUC消除时间,即不会有29-05-2019 23:59:00。如果您希望在一个时间段内使用相同的日期,请删除trunc,然后您可以设置小时分秒,从而使查询更精确

SELECT t.*
FROM table t
WHERE t.date BETWEEN trunc(to_date(:datefrom, 'dd.mm.yyyy hh24:mi:ss')) AND
                     trunc(to_date(:dateto, 'dd.mm.yyyy hh24:mi:ss'))

这相当于,
where Date='2019-05-29'
已经在这个[question]()中得到了回答。我怀疑有一个不同的问题,我想要一个关于日期范围的一般查询,有时日期范围将是相同的日期。这假设
Date
的数据类型是
Date
!如果是
DATETIME
,那么您只检查午夜!这相当于,
where Date='2019-05-29'
已经在这个[question]()中得到了回答。我怀疑有一个不同的问题,我想要一个关于日期范围的一般查询,有时日期范围将是相同的日期。这假设
Date
的数据类型是
Date
!如果是
DATETIME
,那么您只检查午夜!看起来比mysql更像Oracle。看起来比mysql更像Oracle。在此上下文中,
date()
的使用是可选的。此外,此短语处理任何数据类型
date
,包括,例如,微秒分辨率
DATETIME(6)
。在此上下文中,
date()
的使用是可选的。此外,此短语处理任何数据类型
Date
,例如,包括微秒分辨率
DATETIME(6)