我如何在MySql中进行小于等于日期时间的比较?

我如何在MySql中进行小于等于日期时间的比较?,mysql,datetime,Mysql,Datetime,我必须比较mysql中的日期,例如: select col1,col2 from table where date <= '2011-12-24' (present date) 但这只会给出小于“2011-12-24”的所有日期的输出。我怀疑您的问题在于日期列是时间戳,但您将其与日期进行比较。完成此操作后,您的2011-12-24将转换为2011-12-24 00:00:00.0000,因此任何具有合理时间的2011-12-24的内容都将在此点之后。在你的情况下,我会用 select c

我必须比较mysql中的日期,例如:

select col1,col2 from table where date <= '2011-12-24' (present date)

但这只会给出小于“2011-12-24”的所有日期的输出。

我怀疑您的问题在于日期列是时间戳,但您将其与日期进行比较。完成此操作后,您的2011-12-24将转换为2011-12-24 00:00:00.0000,因此任何具有合理时间的2011-12-24的内容都将在此点之后。在你的情况下,我会用

select col1,col2 from table where my_date < '2011-12-25' (present date + 1 day)

或者,如果您坚持使用,我怀疑您的问题在于日期列是时间戳,但您将其与日期进行比较。完成此操作后,您的2011-12-24将转换为2011-12-24 00:00:00.0000,因此任何具有合理时间的2011-12-24的内容都将在此点之后。在你的情况下,我会用

select col1,col2 from table where my_date < '2011-12-25' (present date + 1 day)

或者,如果你坚持使用那么,现在试试下面的方法

SELECT col1,col2 FROM table 
WHERE date <= STR_TO_DATE('2011-12-24 00:00:00', '%Y-%m-%d %H:%i:%s');

那么,现在试试下面的方法

SELECT col1,col2 FROM table 
WHERE date <= STR_TO_DATE('2011-12-24 00:00:00', '%Y-%m-%d %H:%i:%s');

这很有效。。。jst需要将列转换为日期格式
从DATE_FORMATdate所在的表中选择col1、col2,“%Y%m%d”此操作有效。。。jst需要将列转换为日期格式
从table where DATE_FORMATdate中选择col1、col2,“%Y%m%d”您使用的是什么版本的mysql?我认为需要更多的信息,您是否可以提供一个简化的表模式、一些示例数据以及您用于尝试Aleks G建议的确切sql语句?当我尝试时,这三种方法都有效。您使用的是什么版本的mysql?我想还需要更多的信息,您能否提供一个简化的表模式、一些示例数据以及您用于尝试Aleks G建议的确切sql语句?当我尝试时,这三个选项都起作用了。我尝试了2011-12-24 00:00:00,但结果与2011-12-24的结果相同。相反,我尝试了数据库col的时间戳是00:00:00,但我尝试了使用2011-12-24 23:59:59,即使给出了与上述相同的答案。。由于mysql支持日期比较+1 my_date<当前日期+1天是最好的选择,并且它对任何一个日期都有效,所以我无法让wats继续运行,timestamp或datetime数据类型。或者my_date