phpmyadmin 用于选择带日期记录的MySQL查询

eivgtgni  于 2022-11-09  发布在  PHP
关注(0)|答案(3)|浏览(154)

我有一个数据库,其中data_fine定义为TEXT,并包含诸如“25-05-2021“之类的值。我需要查找当前日期到8天之间的所有记录。
我尝试了以下查询,但没有显示任何内容。

SELECT * from tabella_raw where data_fine > DATE(NOW) and data_fine < DATE(NOW() + INTERVAL 8 DAYS)

将存储为TEXT的日期与当前日期进行比较的最佳安全方法是什么?

n53p2ov0

n53p2ov01#

您必须转换日期,这会占用大量的处理器时间,因此您应该避免这样做,并将所有日期保存在MySQL日期yyyy-MM-dd hh:mm:ss中
您也可以使用CURDATE()来获取当前日期
最后一个参数为INTERVAL IS DAY而不是DAYS

SELECT STR_TO_DATE("25-05-2021",'%d-%m-%Y');
SELECT * from tabella_raw where STR_TO_DATE(data_fine,'%d-%m-%Y') > Curdate() and STR_TO_DATE(data_fine,'%d-%m-%Y') < CURDATE() + INTERVAL 8 DAY;
taor4pac

taor4pac2#

尝试使用STR_TO_DATE函数

SELECT * from tabella_raw where STR_TO_DATE(data_fine, '%d-%m-%Y')  > DATE(NOW) and STR_TO_DATE(data_fine, '%d-%m-%Y') < DATE(NOW() + INTERVAL 8 DAYS)
x3naxklr

x3naxklr3#

您正尝试将文本字段用作日期,因此需要将文本转换为日期才能使用日期函数。

相关问题