Mysql 在日期范围和特定时间范围之间选择
是否有方法在日期和特定时间范围之间选择记录。例如,2013-11-01至2013-11-30期间05:00至15:00之间的所有记录。这是我到现在为止做的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
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”之间的时间(审计日期)。