mysql - sql查询添加1年,减少月份中过去的天数

标签 mysql intervals

我有一个包含日期行的表格, 我需要获取一年的行:

    SELECT DATE_FORMAT(cal_date, '%e %M') as cal_date, price_client, 
price_owner, description FROM table WHERE cal_date < 
DATE_ADD('2017-09-13' , INTERVAL 1 year) 

此查询的结果是日期行,日期从 2017 年 9 月 1 日到 2018 年 9 月 12 日。

我想要2017年9月13日至2018年9月12日期间的结果。

已更新,这是正确的查询,按照我想要的方式工作: 其中 cal_date >= '2017-09-13' 且 cal_date < DATE_ADD('2017-09-13' , 间隔 1 年)

最佳答案

对于基于 curdate() 的通用格式,您可以使用

SELECT 
    DATE_FORMAT(cal_date, '%e %M') as cal_date
    , price_client
    , price_owner
    , description 
FROM table WHERE cal_date < 
      DATE_ADD(DATE_ADD(LAST_DAY(DATE_SUB(CURDATE(), interval 30 day), interval 1 day) , 
                                        INTERVAL 1 year) 

关于mysql - sql查询添加1年,减少月份中过去的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46205319/

相关文章:

MySQL 查询优化 : IN() vs OR

php - 使用 > 符号拆分关联数组并将其显示在列表 ion php 中

php - 获取 sql 返回正确的帖子

python - 将月份间隔除以其他列中的值

python - 解析具有间隔的整数集字符串以列出

php - 如何编辑 mySQL 查询来选择具有此要求的用户?

php - MySQL INSERT 未使用 PHP 插入预期值

javascript - 从另一个可观察对象发出数据后的刷新间隔

sql - 将两个小时添加到时间戳

javascript - Angularjs $间隔: Using a callback function as a param into the pass in function