我在MySQL数据表中有一个名为added_date
的列,其数据类型为varchar(255)
,其插入的日期类似于mm/dd/yyyy
。表格中有很多数据包含'5/12/2018'
,'4/10/2018'
,'3/5/2018'
等日期。现在,我想获取仅2018年5月的数据。
如何获取2018年5月的数据?
感谢。
答案 0 :(得分:0)
MySQL以'YYYY-MM-DD'
格式检索并显示日期。因此,您必须使用STR_TO_DATE
函数将字符串转换为日期。然后,可以在BETWEEN
子句中使用WHERE
关键字来设置特定的日期范围:
SELECT *
FROM MyTable
WHERE STR_TO_DATE(added_date, '%m/%d/%Y') BETWEEN '2018-05-01' AND '2018-05-31';
你可以在线try the query。
答案 1 :(得分:-1)
将varchar转换为适合您条件的格式的日期:
SELECT * FROM your_table WHERE STR_TO_DATE(added_date, '%c%Y') = '52018';
您可以在select组件中使用相同的功能来返回日期:
SELECT STR_TO_DATE(added_date, '%Y-%m-%d') AS fDate FROM your_table WHERE STR_TO_DATE(added_date, '%c%Y') = '52018';