0

下面应该找到我的选民 ID 和日期。由于某种原因,它无法识别日期并且不会匹配其中任何一个。

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

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

4

2 回答 2

0

试试这个

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

日期格式应该是yyyy-mm-dd

更新 1

根据您的更新,数据类型election_datevarchar.

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

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

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

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

for date 的缺点varchar是当你的条件是 >、>=、<、<= 时你无法获取数据。

对于日期,始终使用时间戳

于 2012-06-28T11:10:15.557 回答
0

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

SELECT * 
FROM  `voting_intention` 
WHERE  `elector` =  '119'
AND  TRIM(election_date) =  '05-07-2012'
LIMIT 0 , 30
于 2012-06-28T11:27:19.793 回答