MYSQL SELECT超过1年的记录


MYSQL SELECT records older than 1 year ago

我试图从我的数据库中获得所有记录的列表,这些记录的年龄超过1年前,expired_contract字段有下一个信息。

expired_contract DATE NOT NULL

所以它采用下一种格式的DATE: YEAR-MM-DD,接下来我有一个sql,我不能让它可悲地工作。

$sql = "SELECT * 
        FROM My_Contracte 
        WHERE expired_contract >= DATE_SUB(NOW(),INTERVAL 1 YEAR) 
        ORDER BY id_contract DESC";

我尝试了很多"WHERE"命令,但没有一个像我预期的那样工作。你能帮我把这个修好吗?我看这个大约5个小时,我需要确切的命令来让它工作。

$sql得到我一些东西,但把它弄错了,我得到的日期如:2015-10-01,2016-10-01和日期如2014-09-30不显示。

基本上我想显示日期:

如果今天是2015-10-01,我希望看到比一年前更早的日期,所以从2014-09-30开始,而不是显示像2015-10-01,2016-10-01这样的日期。

也许我必须在数据库中编辑一些东西?

寻求您的帮助,谢谢!

你必须使用<<than>代替greater或equals:

$sql = "SELECT * FROM My_Contracte WHERE expired_contract < DATE_SUB(NOW(),INTERVAL 1 YEAR) 
SELECT SUM(impressions) AS impressions FROM My_Contracte  where DATE(expired_contract) BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 1 YEAR ) AND CURDATE( )
SELECT * FROM My_Contracte WHERE (expired_contract NOT BETWEEN DATE_SUB(CURDATE(),INTERVAL 1 YEAR) AND CURDATE()) and expired_contract<=NOW() ;