Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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/2/linux/28.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_Select_Time - Fatal编程技术网

Mysql 在日期范围和特定时间范围之间选择

Mysql 在日期范围和特定时间范围之间选择,mysql,sql,select,time,Mysql,Sql,Select,Time,是否有方法在日期和特定时间范围之间选择记录。例如,2013-11-01至2013-11-30期间05:00至15:00之间的所有记录。这是我到现在为止做的 select count(*) as total from tradingaccounts accounts inner join tradingaccounts_audit audit on audit.parent_id = accounts.id where date(audit.date_created) between da

是否有方法在日期和特定时间范围之间选择记录。例如,2013-11-01至2013-11-30期间05:00至15:00之间的所有记录。这是我到现在为止做的

    select count(*) as total from tradingaccounts accounts
inner join tradingaccounts_audit audit on audit.parent_id = accounts.id
where date(audit.date_created) between date('2013-11-01 00:00:00') AND date('2013-11-01 23:59:59') 

但是如何设置特定的时间范围呢?

替换您的函数,它会跳过时间部分。改用。

您可以使用
HOUR
功能在小时数上添加附加条件:

select count(*) as total from tradingaccounts accounts
inner join tradingaccounts_audit audit on audit.parent_id = accounts.id
where date(audit.date_created) between date('2013-11-01 00:00:00') AND date('2013-11-01 23:59:59') 
AND HOUR (audit.date_created) BETWEEN 5 AND 15

在查询中添加以下行,并设置时间间隔


时间(audit.date_created)介于“00:00:01”和“01:00:00”之间

正如其他人回答的那样,
HOUR()
可以帮助您

但是HOUR()或DATE()不能使用
索引
。为了加快查询速度,我建议添加
time\u created time
列并只保存时间部分。然后添加索引(创建日期、创建时间)。最后,通过下面的查询,您可以快速检索行

where audit.date_created between '2013-11-01 00:00:00' AND '2013-11-01 23:59:59'
  AND audit.time_created BETWEEN '05:00:00' AND '15:00:00'
如果使用
date(audit.date\u created)
,则
date\u created
字段上的索引无法生效


只需简单地使用
where audit.date\u created>='xx xx xx'和audit.date\u created<'xx xx xx'

是否有一种方法可以说小时之间:分钟:秒而不是小时?@user1292656当然-您可以使用
时间
功能。例如,“05:00:00”和“15:00:00”之间的时间(审计日期)。