MYSQL SELECT记录早于1年前

时间:2015-10-01 11:47:41

标签: php mysql date

我尝试从我的数据库中获取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年1月30日之前超过1年的日期,而不显示2015-10-01,2016-10-01的日期。

也许我必须在数据库中编辑某些内容?

寻求你的帮助,谢谢!

3 个答案:

答案 0 :(得分:15)

你必须使用低于而不是更大或等于:

$sql = "SELECT * FROM My_Contracte WHERE expired_contract < DATE_SUB(NOW(),INTERVAL 1 YEAR) 

答案 1 :(得分:0)

SELECT * FROM My_Contracte WHERE (expired_contract NOT BETWEEN DATE_SUB(CURDATE(),INTERVAL 1 YEAR) AND CURDATE()) and expired_contract<=NOW() ;

答案 2 :(得分:0)

SELECT SUM(impressions) AS impressions FROM My_Contracte  where DATE(expired_contract) BETWEEN DATE_SUB( CURDATE( ) ,INTERVAL 1 YEAR ) AND CURDATE( )