mySQL查询不会返回相同日期的结果

时间:2012-06-28 11:08:15

标签: mysql date

以下应该找到我的选举ID和日期。出于某种原因,它似乎没有认出日期,也不会与它们相匹配。

SELECT * 
FROM  `voting_intention` 
WHERE  `elector` =  '119'
AND  `election_date` =  '05-07-2012'
LIMIT 0 , 30

为什么会这样,我们如何解决它。

2 个答案:

答案 0 :(得分:0)

试试这个

SELECT * 
FROM  `voting_intention` 
WHERE  `elector` =  '119'
AND  `election_date` =  '2012-07-05'
LIMIT 0 , 30

日期格式应为yyyy-mm-dd

更新1

根据您的更新,election_date的数据类型为varchar

如果您的日期格式与yyyy-mm-dd一致,请使用以上查询。

如果格式为dd-mm-yyyy,则您的查询应该有效。

您需要根据您的格式调整条件。

SELECT * 
FROM  `voting_intention` 
WHERE  `elector` =  '119'
AND  `election_date` =  'dateFormat'
LIMIT 0 , 30

varchar日期的缺点是,当条件为>,> =,<,< =。

日期始终使用 timestamp

答案 1 :(得分:0)

数据库中可能存在一些不可见的字符,例如\ r或\ n或空格......首先检查一下。尝试使用trim确保删除字符:

SELECT * 
FROM  `voting_intention` 
WHERE  `elector` =  '119'
AND  TRIM(election_date) =  '05-07-2012'
LIMIT 0 , 30