在mysql中获取两个日期之间的记录

请参阅下表,在此日期列类型中,varchar不是日期。

|---------------------| |date | name | |---------------------| |23-5-2005 | babi | |20-6-2005 | ram | |12-5-2005 | jhon | |1-5-2004 | babi | |23-5-2005 | guru | 

知道我想在两个日期之间获得记录。

 String gt = "12-5-2005"; String gt1 = "20-6-2005"; String query = ??; 

如何编写查询以获取字符串gt和gt1之间的名称

SQL部分应该如下所示。

 SELECT * FROM StackOverflow.`Table` WHERE STR_TO_DATE(`date`, '%d-%m-%Y') BETWEEN STR_TO_DATE('12-5-2005', '%d-%m-%Y') AND STR_TO_DATE('20-6-2005', '%d-%m-%Y') 

和str_to_date之间的日期将完成。

感谢@John Ruddell的str_to_date语法。 🙂

 SELECT name, date FROM table WHERE STR_TO_DATE(`date`, '%d-%m-%Y') BETWEEN STR_TO_DATE("12-05-2005", '%d/%m/%Y') AND STR_TO_DATE("20-06-2005", '%d/%m/%Y') 

可能它会帮助你:)

query =’select * from tableName,其中日期介于“’+ gt +’”和“’+ gt1 +’”’之间;

您需要使用mysql STR_TO_DATE函数

http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_str-to-date

 String query = "select name from table where table.date > STR_TO_DATE(gt, '%d/%m/%y') AND table.date < STR_TO_DATE(gt1, '%d/%m/%y')";