我需要从2011年6月30日至2012年6月30日期间的一张表中获取记录。 问题是结果只是显示2012年的记录,尽管该表有2011年的记录。 下面是我的代码
SELECT * FROM tbl_name where date between '06/30/2011' and '06/30/2012'
答案 0 :(得分:2)
您需要使用date
将其转换为STR_TO_DATE
,例如
SELECT *
FROM tbl_name
where STR_TO_DATE(date, '%m/%d/%Y') between '2011-06-31' and '2012-06-31'
将Dates
作为字符串存储在数据库中并不好,因为如您所见,很难搜索它,您需要一些额外的功能来将其转换回日期以及我认为< / em>它杀死了索引。
如果您有时间或特权进行更改,请修复这些值并将其更改为DateTime
数据类型。