MySQL日期时间查询的奇怪问题

MySQL日期时间查询的奇怪问题,mysql,Mysql,这些结果有什么意义?我不明白。 例如,上一个查询不应该返回一个空集吗?因为没有日期为2010的线程?为什么会返回2003年的结果 mysql> SELECT * FROM thread WHERE newsgroup_id = '64654' AND 'thread_date' < '2010-09-10 21:43:05' LIMIT 1; 一行一组(0.00秒) 设置为1行(0.00秒)您使用了错误的引号类型。My

这些结果有什么意义?我不明白。
例如,上一个查询不应该返回一个空集吗?因为没有日期为2010的线程?为什么会返回2003年的结果

mysql> SELECT * 
       FROM thread 
       WHERE newsgroup_id = '64654' 
       AND 'thread_date' < '2010-09-10 21:43:05' 
       LIMIT 1;
一行一组(0.00秒)


设置为1行(0.00秒)

您使用了错误的引号类型。MySQL认为您正在比较字符串“thread\u date”。以下是它应该是什么样子:

`thread_date` > '2010-09-10 21:43:05'

通过这种方式,MySQL知道您指的是字段
thread\u date
,并将其与表达式右侧的日期进行比较。

您使用了错误的引号类型。MySQL认为您正在比较字符串“thread\u date”。以下是它应该是什么样子:

`thread_date` > '2010-09-10 21:43:05'

通过这种方式,MySQL知道您指的是字段
thread\u date
,并将其与表达式右侧的日期进行比较。

“thread\u date”
是一个字符串,而不是该字段的值

你的意思是:

`thread_date` > '2010-09-10 21:43:05'

'thread\u date'
是一个字符串,而不是该字段的值

你的意思是:

`thread_date` > '2010-09-10 21:43:05'

如果我是对的,你不能这么做。这只是一个ASCII比较(基于文本),这就是为什么您会得到这些奇怪但“正确”的比较。在中查找如何比较日期/时间mysql@Nupul:您可以将日期时间作为字符串进行比较MySQL@ypercube:我的坏…应该澄清。我的意思是,整体比较是基于字符串的(包括
的LHS和RHS),如果我是正确的,您不能这样做。这只是一个ASCII比较(基于文本),这就是为什么您会得到这些奇怪但“正确”的比较。在中查找如何比较日期/时间mysql@Nupul:您可以将日期时间作为字符串进行比较MySQL@ypercube:我的坏…应该澄清。我的意思是总体比较是基于字符串的(LHS和RHS都是
),或者根本没有反引号:
。。。和线程日期>'2010-09-10 21:43:05'…
或根本没有反引号:
。。。和线程日期>'2010-09-1021:43:05'…
`thread_date` > '2010-09-10 21:43:05'