当字段的类型存储为varchar且其格式为dd/mm/yyyy时,如何筛选表的数据
我在附上一张截图。

它只根据日进行过滤,不会检查月份和年份。如果没有SQL解决方案,那么请告诉我如何在PHP中处理这个问题。
发布于 2021-05-14 10:27:44
更好的方法是通过STR_TO_DATE更新该列,以便在更改它时不会丢失数据,然后更改该列并将其设置为数据类型。
UPDATE `details` SET `datenew` = STR_TO_DATE(`datenew`, "%d/%m/%Y");
ALTER TABLE `details` MODIFY `datenew` DATE然后您就可以轻松地运行查询了。
SELECT * FROM `details` WHERE `datenew` >= str_to_date('23/06/2020', '%d/%m/%Y')发布于 2021-05-14 09:42:17
您可以在WHERE子句中str_to_date varchar数据类型到date
SELECT * FROM details WHERE str_to_date(datenew, '%d/%m/%Y') >= '20200603'发布于 2021-05-14 10:04:47
将列转换为日期!您可以在where子句中这样做:
where str_to_date(datecol, '%d/%m/%Y') >= ? and
str_to_date(datecol, '%d/%m/%Y') < ?但是,正确的做法是使用正确的类型存储数据:
update t
set datecol = date_format(str_to_date(datecol, '%d/%m/%Y'), '%Y-%m-%d');
alter table t modify column datecol date;https://stackoverflow.com/questions/67532146
复制相似问题