-4
我在mysql数据库表中调用日期的字段是以d-m-y格式存储日期的。Sql语句来查找日期小于今天日期的记录的计数
我正在查找一个sql语句来查找小于或等于今天日期的所有日期的计数。例如,如果今天的日期是18-07-2017 ,并且我们在日期表中记录了诸如17-07-2017,18-07-2017,19-07-2017等日期,则sql语句应输出2.
有人可以帮忙。
我在mysql数据库表中调用日期的字段是以d-m-y格式存储日期的。Sql语句来查找日期小于今天日期的记录的计数
我正在查找一个sql语句来查找小于或等于今天日期的所有日期的计数。例如,如果今天的日期是18-07-2017 ,并且我们在日期表中记录了诸如17-07-2017,18-07-2017,19-07-2017等日期,则sql语句应输出2.
有人可以帮忙。
值转换为一个日期并进行比较:
select count(*)
from t
where str_to_date(stupid_date_column, '%d-%m-%Y') <= curdate();
然后解决您的表,这样的日期被正确地存储:
update t
set stupid_date_column = date_format(str_to_date(stupid_date_column, '%d-%m-%Y'), '%Y-%m-%d');
alter table t modify stupid_date_column date;
这一个工程!谢谢 – Lenny
你为什么将它们存储为字符串,而不是作为' DATE'或'DATETIME'? – Barmar
这是非常基本的SQL;你有尝试过什么吗? – mustaccio
使用'STR_TO_DATE'将字符串转换为日期。然后你可以用'TODAY()'比较它们。 – Barmar