下面应该找到我的选民 ID 和日期。由于某种原因,它无法识别日期并且不会匹配其中任何一个。
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
根据您的更新,数据类型election_date
为varchar
.
如果您的日期格式一致,请yyyy-mm-dd
使用上述查询。
如果其格式为,dd-mm-yyyy
那么您的查询应该可以工作。
您将需要根据您拥有的格式调整条件。
SELECT *
FROM `voting_intention`
WHERE `elector` = '119'
AND `election_date` = 'dateFormat'
LIMIT 0 , 30
for date 的缺点varchar
是当你的条件是 >、>=、<、<= 时你无法获取数据。
对于日期,始终使用时间戳。
数据库中可能有一些不可见的字符,如 \r 或 \n 或空格......首先检查一下。尝试使用trim确保字符被删除:
SELECT *
FROM `voting_intention`
WHERE `elector` = '119'
AND TRIM(election_date) = '05-07-2012'
LIMIT 0 , 30