在两个日期之间搜索MYSQL

3

我可以帮您翻译这段与IT技术相关的内容。数据库中有两个日期,如下所示:

from_dateTime = 2013-06-12
to_dateTime   = 2013-07-10

我希望搜索所有记录在from_dateTimeto_dateTime之间的内容。我尝试在mysql中使用以下代码:
SELECT *
FROM users i
WHERE i.from_dateTime >= '2013-06-12' AND i.to_dateTime <= '2013-07-10'

但它并没有像我预期的那样工作。为什么我得到了空结果集?

更新:

from_dateTime = 2013-06-11
to_dateTime   = 2013-06-12

SQL:

SELECT * FROM users i WHERE  NOW() between i.from_dateTime AND i.to_dateTime 

NOW()2013-06-12 08:17:13,但命令找不到我的记录。


1
使用"between"函数 - undefined
5
有什么原因导致它没有成功? - undefined
2
数据库中的日期是以日期格式还是字符串格式存储的? - undefined
@Harjeet Jadeja,我没有遇到错误。这个命令找不到日期之间的记录。 - user2388554
1
从哪个日期时间到哪个日期时间的字段是什么类型? - undefined
显示剩余5条评论
4个回答

3

问题在于您正在比较日期和日期时间。日期从午夜开始。任何时间组件都大于相应的日期。请尝试以下操作:

SELECT *
FROM users u
WHERE date(NOW()) between u.from_dateTime AND u.to_dateTime 

1
SELECT * 
FROM users i 
WHERE cast(NOW() as date) 
      between i.from_dateTime AND i.to_dateTime

SQL FIDDLE

的英文原意为: "

SQL FIDDLE

",是与编程相关的内容,保留了HTML格式。

1
select from table_name where datetime_column >= '2013-06-11' and datetime_column <= '2013-06-12'

0

使用之间

SELECT * FROM users u where date(NOW()) between u.from_dateTime and u.to_dateTime 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接