不知道这里发生了什么。这是查询,直接来自phpMyAdmin:
SELECT * FROM `la_schedule` WHERE 'start_date' >'2012-11-18';
但是我一直在返回表中的所有记录,包括那些开始日期为2012-11-01的记录。是什么给了什么?
答案 0 :(得分:160)
您已将start_date
括在单引号中,使其成为字符串,而是使用backtick
SELECT * FROM `la_schedule` WHERE `start_date` > '2012-11-18';
答案 1 :(得分:20)
在您的陈述中,您正在将名为 start_date 的字符串与时间进行比较。
如果 start_date 是一列,则该列应为
SELECT * FROM `la_schedule` WHERE start_date >'2012-11-18';
(没有撇号) 或
SELECT * FROM `la_schedule` WHERE `start_date` >'2012-11-18';
(带反叛)。
希望这会有所帮助。
答案 2 :(得分:10)
试试这个。
SELECT * FROM la_schedule WHERE `start_date` > '2012-11-18';
答案 3 :(得分:0)
在我的情况下,我的专栏是一个日期时间,它会一直提供所有记录。我所做的是包括时间,请参见下面的示例
SELECT * FROM my_table where start_date > '2011-01-01 01:01:01';
答案 4 :(得分:0)
答案 5 :(得分:0)
添加此内容,因为未提及。
SELECT * FROM `la_schedule` WHERE date(start_date) > date('2012-11-18');
因为那才是真正对我有用的东西。在两个比较值上添加date()函数。
答案 6 :(得分:0)
如果您正在比较时间戳 - 您可以尝试以下
select * from table where columnInTimestamp > ((UNIX_TIMESTAMP() * 1000) - (1*24*60*60*1000))
此处 UNIX_TIMESTAMP() 给出当前时间戳,其中“12460601000”是 1 天的时间戳——这样您就可以找到刚刚创建的数据1 天或 2 天等。