我不知道这里发生了什么。这是查询语句,直接从phpMyAdmin中获取:
SELECT * FROM `la_schedule` WHERE 'start_date' >'2012-11-18';
但我始终会返回表中的所有记录,包括那些开始日期为2012-11-01的记录。这是怎么回事?
你使用了单引号将start_date
包裹起来,导致它变成了字符串,请使用反引号
代替。
SELECT * FROM `la_schedule` WHERE `start_date` > '2012-11-18';
在你的陈述中,你正在将一个叫做start_date的字符串与时间进行比较。
如果start_date是一列,那么它应该是
SELECT * FROM `la_schedule` WHERE start_date >'2012-11-18';
查询`la_schedule`表中起始日期晚于2012年11月18日的所有数据。该语句为IT技术相关内容。(没有单引号) 或者
选择所有从“la_schedule”表中起始日期大于'2012-11-18'的数据;
(带有反引号)。试试这个。
SELECT * FROM la_schedule WHERE `start_date` > '2012-11-18';
因为这是对我实际有效的方法。在比较值上都添加date()函数。
PS: 正如@NikolajHansen在评论中指出的那样,这可能不是理想的解决方案,因为这会在每一行中运行日期函数。
SELECT * FROM my_table where start_date > '2011-01-01 01:01:01';
如果你正在比较时间戳 - 你可以尝试以下方法
select * from table where columnInTimestamp > ((UNIX_TIMESTAMP() * 1000) - (1*24*60*60*1000))
UNIX_TIMESTAMP()函数提供当前时间戳,而"12460601000"是一天的时间戳 -- 通过这个可以找到在1天或2天内创建的数据等。