我试图在两个日期内从mySQL表中获取数据。 “date”列的数据类型是string。我的mySQL查询是
SELECT * FROM `accounts` WHERE date between STR_TO_DATE('01/03/2017', '%d/%m/%Y') and STR_TO_DATE('20/03/2017', '%d/%m/%Y')
它没有显示任何内容。如果我写,
SELECT * FROM `accounts` WHERE date between '01/03/2017' and '20/03/2017'
它几乎需要所有数据。这是屏幕截图。
答案 0 :(得分:1)
如果您的'date'数据类型是字符串,那么您的查询将使用字符串比较。如果您想要日期比较,还必须将'日期'列转换为日期数据类型STR_TO_DATE(日期,'%d /%m /%Y')。
你可以使用这样的东西
SELECT * FROM `accounts`
WHERE STR_TO_DATE(date, '%d/%m/%Y') BETWEEN
STR_TO_DATE('01/03/2017', '%d/%m/%Y') AND
STR_TO_DATE('20/03/2017', '%d/%m/%Y')