首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >数据筛选器的PHP查询

数据筛选器的PHP查询
EN

Stack Overflow用户
提问于 2021-05-14 09:37:04
回答 3查看 292关注 0票数 1

当字段的类型存储为varchar且其格式为dd/mm/yyyy时,如何筛选表的数据

我在附上一张截图。

它只根据日进行过滤,不会检查月份和年份。如果没有SQL解决方案,那么请告诉我如何在PHP中处理这个问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-05-14 10:27:44

更好的方法是通过STR_TO_DATE更新该列,以便在更改它时不会丢失数据,然后更改该列并将其设置为数据类型。

代码语言:javascript
复制
UPDATE `details` SET `datenew` = STR_TO_DATE(`datenew`, "%d/%m/%Y");
ALTER TABLE `details` MODIFY `datenew` DATE

然后您就可以轻松地运行查询了。

代码语言:javascript
复制
SELECT * FROM `details` WHERE `datenew` >= str_to_date('23/06/2020', '%d/%m/%Y')
票数 1
EN

Stack Overflow用户

发布于 2021-05-14 09:42:17

您可以在WHERE子句中str_to_date varchar数据类型到date

代码语言:javascript
复制
SELECT * FROM details WHERE str_to_date(datenew, '%d/%m/%Y') >= '20200603'
票数 0
EN

Stack Overflow用户

发布于 2021-05-14 10:04:47

将列转换为日期!您可以在where子句中这样做:

代码语言:javascript
复制
where str_to_date(datecol, '%d/%m/%Y') >= ? and
      str_to_date(datecol, '%d/%m/%Y') < ?

但是,正确的做法是使用正确的类型存储数据:

代码语言:javascript
复制
update t
    set datecol = date_format(str_to_date(datecol, '%d/%m/%Y'), '%Y-%m-%d');

alter table t modify column datecol date;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67532146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档