我需要一个SQL条件来从昨天上午6:00到今天上午7:00之间创建的表中获取行.该表有一个creationDate
字段.
这是我想到的方法
select *
from myTable
where creationDate = DATE_SUB(CONCAT(CURDATE()), INTERVAL 1 DAY)
Run Code Online (Sandbox Code Playgroud)
我正在使用mysql服务器5.此外,我的时间不在creationDate字段上,它位于一个名为startTime的独立字段上.
经过测试并且可以正常工作(假设您的creationDate列的类型为timestamp):
select * from mytable
where
creationDate between concat(date(date_sub(now(), interval 1 day)), ' 06:00:00') and concat(date(now()), ' 07:00:00')
Run Code Online (Sandbox Code Playgroud)
注意时间值前面的空格,即'06:00:00'
编辑评论中进一步说明的原因:
SELECT * FROM mytable
WHERE
(creationDate >= date(date_sub(now(), interval 1 day)) AND creationTime >= '06:00:00')
AND
(creationDate <= date(now()) AND creationTime <= '07:00:00')
Run Code Online (Sandbox Code Playgroud)
是的,现在需要这个笨拙,因为如果你只是写一些像(伪代码)
...WHERE creationDate between today and yesterday AND creationTime between '06:00:00' and '07:00:00'
Run Code Online (Sandbox Code Playgroud)
今天和昨天你将获得1小时的时间跨度.
归档时间: |
|
查看次数: |
4357 次 |
最近记录: |