-3

我需要从一张日期在 2011 年 6 月 30 日到 2012 年 6 月 30 日之间的表中获取记录。问题是结果只是显示了 2012 年的记录,尽管该表有 2011 年的记录。下面是我的代码

SELECT * FROM tbl_name where date between '06/30/2011' and '06/30/2012'
4

1 回答 1

2

您需要将其 bact 转换为dateusing STR_TO_DATE,例如

SELECT * 
FROM tbl_name 
where STR_TO_DATE(date, '%m/%d/%Y') between '2011-06-31' and '2012-06-31'

在数据库中存储为字符串并不好,Dates因为您看到很难搜索它,您需要一些额外的函数将其转换回日期并且我认为它会杀死索引。

如果您有时间或特权进行更改,请修复这些值并将其更改为DateTime数据类型。

于 2013-01-22T13:17:45.703 回答