不知道这是怎么回事。以下是phpMyAdmin的查询:
SELECT * FROM `la_schedule` WHERE 'start_date' >'2012-11-18';
字符串但是我总是返回表中的所有记录,包括开始日期为2012-11-01的记录。怎么回事?
tktrz96b1#
你用单引号把start_date括起来,导致它变成了字符串,请使用backtick
start_date
backtick
SELECT * FROM `la_schedule` WHERE `start_date` > '2012-11-18';
字符串
ttvkxqim2#
在您的语句中,您将一个名为start_date的字符串与时间进行比较。如果start_date是一个列,则应该是
SELECT * FROM `la_schedule` WHERE start_date >'2012-11-18';
字符串(no撇号)或
SELECT * FROM `la_schedule` WHERE `start_date` >'2012-11-18';
型(with反向标记)。希望这对你有帮助。
hkmswyz63#
试试这个
SELECT * FROM la_schedule WHERE `start_date` > '2012-11-18';
dw1jzc5e4#
我试过了,但上面没有工作后,研究发现下面的解决方案。
SELECT * FROM my_table where DATE(start_date) > '2011-01-01';
字符串Ref
ippsafx75#
加上这个,因为没有提到。第一个月因为这才是我真正的工作。在两个比较值上添加date()函数。PS:正如@NikolajHansen在评论中指出的,这可能不是理想的解决方案,因为这可能会在每一行中运行日期函数。
093gszye6#
在我的情况下,我的专栏是一个日期时间,它一直给我所有的记录。我所做的是包括时间,见下面的例子
SELECT * FROM my_table where start_date > '2011-01-01 01:01:01';
zqry0prt7#
如果您正在比较时间戳-您可以尝试以下
select * from table where columnInTimestamp > ((UNIX_TIMESTAMP() * 1000) - (1*24*60*60*1000))
字符串这里UNIX_TIMESTAMP()给出了当前的时间戳,其中“12460601000”是1天的时间戳--通过这个,你可以找到在1天或2天内创建的数据。
7条答案
按热度按时间tktrz96b1#
你用单引号把
start_date
括起来,导致它变成了字符串,请使用backtick
字符串
ttvkxqim2#
在您的语句中,您将一个名为start_date的字符串与时间进行比较。
如果start_date是一个列,则应该是
字符串
(no撇号)或
型
(with反向标记)。
希望这对你有帮助。
hkmswyz63#
试试这个
字符串
dw1jzc5e4#
我试过了,但上面没有工作后,研究发现下面的解决方案。
字符串
Ref
ippsafx75#
加上这个,因为没有提到。
第一个月
因为这才是我真正的工作。在两个比较值上添加date()函数。
PS:正如@NikolajHansen在评论中指出的,这可能不是理想的解决方案,因为这可能会在每一行中运行日期函数。
093gszye6#
在我的情况下,我的专栏是一个日期时间,它一直给我所有的记录。我所做的是包括时间,见下面的例子
字符串
zqry0prt7#
如果您正在比较时间戳-您可以尝试以下
字符串
这里UNIX_TIMESTAMP()给出了当前的时间戳,其中“12460601000”是1天的时间戳--通过这个,你可以找到在1天或2天内创建的数据。