繁体   English   中英

MYSQL SELECT 记录早于 1 年前

[英]MYSQL SELECT records older than 1 year ago

我尝试从我的数据库中获取早于 1 年的所有记录的列表,expired_contract 的字段包含下一个信息。

expired_contract DATE NOT NULL

所以它采用下一种格式的日期: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,我想看到早于 1 年前的日期,所以从 2014-09-30 开始,而不是显示像 2015-10-01、2016-10-01 这样的日期。

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

寻求您的帮助,谢谢!

您必须使用小于而不是大于或等于:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM