2013-11-04 125 views
1

我正在尝试编写一个查询,该查询将允许我查找每天发生在两次之间的所有记录。举个例子,假设你有五条记录,每条记录都有自己的唯一时间戳,表示记录何时创建。他们看起来像这样:每天两次之间的SQL查询

|--|------|-------------------| 
|id|letter| created_at  | 
|--|------|-------------------| 
|1 |a  |2013-10-30 10:00:00| 
|2 |b  |2013-10-31 18:00:00| 
|3 |c  |2013-11-01 14:00:00| 
|4 |d  |2013-11-03 23:00:00| 
|5 |e  |2013-11-04 05:00:00| 
|--|------|-------------------| 

我想写一个查询,将返回所有创建之间08:00:00和15:00:00之间的记录。预期的结果是:

|--|------|-------------------| 
|id|letter| created_at  | 
|--|------|-------------------| 
|1 |a  |2013-10-30 10:00:00| 
|3 |c  |2013-11-01 14:00:00| 
|--|------|-------------------| 

查询看起来像什么来实现这个结果?我很熟悉如何使用BETWEEN获取日期,但不知道如何专注于时间。谢谢。

回答

1

编辑忘了这是MySQL的 可以使用EXTRACT功能拉说出来

SELECT id, letter, created_at 
FROM table 
WHERE EXTRACT(HOUR, created_at) BETWEEN 8 AND 15