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

mySQL查询不会返回与日期相等的结果,mysql,date,Mysql,Date,以下是我的选民身份证和日期。由于某些原因,它无法识别日期,并且与任何日期都不匹配 SELECT * FROM `voting_intention` WHERE `elector` = '119' AND `election_date` = '05-07-2012' LIMIT 0 , 30 这是为什么?我们如何修复它。试试这个 SELECT * FROM `voting_intention` WHERE `elector` = '119' AND `election_

以下是我的选民身份证和日期。由于某些原因,它无法识别日期,并且与任何日期都不匹配

SELECT * 
FROM  `voting_intention` 
WHERE  `elector` =  '119'
AND  `election_date` =  '05-07-2012'
LIMIT 0 , 30
这是为什么?我们如何修复它。

试试这个

SELECT * 
FROM  `voting_intention` 
WHERE  `elector` =  '119'
AND  `election_date` =  '2012-07-05'
LIMIT 0 , 30
日期格式应为yyyy-mm-dd

更新1 根据您的更新,选举日期的数据类型为varchar

如果您的日期格式一致,如yyyy mm dd,则使用上述查询

如果其格式为dd-mm-yyyy,那么您的查询应该可以工作

您将需要根据您拥有的格式调整条件

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

varchar for date的缺点是,当条件为>、>=、时,无法获取数据。数据库中可能有一些不可见的字符,如\r或\n或空格。。。先看看这个。尝试使用以确保删除字符:

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

您的数据库中的选举日期是什么类型的?请显示一些示例日期。@RobinKnight:那么,日期是如何存储在您的数据库中的呢?你从投票意向中得到了什么选择选举日期?正如你所说,选举日期是一个varchar。数据库中实际文本日期之前/之后是否有ar空格?