查询返回空行之间的日期

时间:2012-06-01 06:56:06

标签: mysql datetime between

我在网络和stackoverlow上经历了很多帖子和问题。 我没有得到任何解决方案

我有一个带有字段

的表jobs

作业

INT |   datetime    - Format
----------------
id  |   post_date   - Fields
-----------------
1   |   2012-05-30 09:59:58
2   |   2012-05-30 09:59:57
3   |   2012-05-25 09:59:57
4   |   2012-05-24 09:59:57
5   |   2012-05-06 09:59:57

以下是我试过的mysql查询,但它没有给出任何结果。 它会导致空记录

查询1

select * from jobs
where post_date BETWEEN CAST('2012-05-01' as DATE) and CAST('2012-05-30' as DATE)

查询2

select * from jobs
where post_date BETWEEN  
STR_TO_DATE('2012-05-30 09:59:58','YYYY-MM-DD HH:MM:SS') AND STR_TO_DATE('2012-05-1 09:59:58','YYYY-MM-DD HH:MM:SS')

查询3

select * from jobs
where post_date BETWEEN  '2012-05-30 09:59:58' AND '2012-05-01 09:59:58'

现在,我怎样才能在日期之间得到结果,需要帮助。

1 个答案:

答案 0 :(得分:2)

您的查询3最接近您的要求。这里修复了问题:

select * from jobs
where post_date BETWEEN '2012-05-30 09:59:58' AND '2012-06-01 09:59:58'

问题出在范围的最后 - 你有:

'2012-05-01 09:59:58' -- This is the first of May

但你需要

'2012-06-01 09:59:58' -- This is the first of June

您的查询3不返回任何内容,因为范围的结尾是之前开始