Mysql选择'yy / dd / MM'和'yy / dd / MM'之间的日期

时间:2016-10-09 12:17:21

标签: mysql simpledateformat

我遇到的情况是我通过'LOAD DATA LOCAL INFILE'从CSV文件中读取数据并将其存储在Mysql表中。

我的表格中的日期列是字符串类型。

如果我的日期格式为'yy / dd / MM',则以下查询无效,只返回2条记录

select column1, column2 from myTable where date between '16/08/15' and '16/08/20';

如果我跑了这个:

select column1, column2 from myTable where date > '16/08/15';

返回所有记录。

有没有办法运行第一个查询,以便指定开始日期和结束日期?

3 个答案:

答案 0 :(得分:0)

将您的日期变成' yyyy-mm-dd'在查询中使用它们之前的格式,这将更容易。

答案 1 :(得分:0)

由于我的sql以该格式存储日期,因此我试图将其作为日期字符串中的yyyy传递,而不是传递年份。因为每年都是四位数,因此在where子句中给出两位数的年份拔出所有大于那一年的记录将实际取出所有记录。

答案 2 :(得分:0)

因为您说您的日期列的类型为"字符串"而不是DATE所以在你的查询中mysql没有在日期之间运行between函数,而是在字符串上运行它。在应用between函数之前,您可能需要将字符串日期强制转换为实际日期。见例如str_to_date function.