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'