MySQL中根据日期筛选数据时,经常会遇到日期格式不一致的问题。以下是几种常见场景的解决方案
1 2 3 4 5 6 7 | -- 筛选特定日期的数据(假设date_column是DATE或DATETIME类型)SELECT * FROM table_name WHERE date_column = '2023-10-25';-- 筛选日期范围内的数据SELECT * FROM table_name WHERE date_column BETWEEN '2023-10-01' AND '2023-10-31'; |
1 2 3 4 5 6 7 | -- 将字符串转为日期(适用于各种格式)SELECT * FROM table_name WHERE STR_TO_DATE(date_string_column, '%Y-%m-%d') = '2023-10-25';-- 或者使用DATE函数(适用于DATETIME/TIMESTAMP)SELECT * FROM table_name WHERE DATE(datetime_column) = '2023-10-25'; |
1 2 3 4 5 6 7 8 9 10 11 12 | -- 筛选今天的数据SELECT * FROM table_name WHERE DATE(date_column) = CURDATE();-- 筛选本月数据SELECT * FROM table_name WHERE YEAR(date_column) = YEAR(CURDATE()) AND MONTH(date_column) = MONTH(CURDATE());-- 筛选最近7天的数据SELECT * FROM table_name WHERE date_column >= DATE_SUB(CURDATE(), INTERVAL 7 DAY); |
1 2 3 4 5 6 7 | -- 忽略时间部分进行比较SELECT * FROM table_name WHERE DATE(datetime_column) = '2023-10-25';-- 按时间部分筛选SELECT * FROM table_name WHERE TIME(datetime_column) BETWEEN '09:00:00' AND '17:00:00'; |