如何使用字符串数据类型在mySQL中查询日期

时间:2017-03-18 05:50:46

标签: php mysql

我试图在两个日期内从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'

它几乎需要所有数据。这是屏幕截图。

Screen

1 个答案:

答案 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')