【问题标题】:the best way to check duration in mysql在 mysql 中检查持续时间的最佳方法
【发布时间】:2013-09-09 15:44:29
【问题描述】:

在我的 mysql 表中,列 startYear,startMonth,endYear,endMonth 都是整数 (int)。在那里我存储了起始年份和月份,以及结束年份和月份。例如,我想存储我的汽车分期付款的持续时间,所以 startYear 有 2012,startMonth 有 8,endYear 有 2019,endMonth 有7

好吧,既然现在实际的当前月份是 9(九月)和 2013 年,那么我检查当前月份和年份是否在 startYear、startMonth 和 endYear、endMonth 内的最佳方法/查询是什么?

【问题讨论】:

  • 您可能需要考虑使用具有 DATE 数据类型的列

标签: php mysql


【解决方案1】:

试试这个:

CURDATE() BETWEEN CONCAT_WS('-', startYear, startMonth, '01')
                  AND CONCAT_WS('-', endYear, endMonth, '31');

【讨论】:

    【解决方案2】:

    BETWEEN 将检查值是否大于或等于第一个数字,并且小于或等于第二个数字。

    IF (MONTH(CURDATE()) BETWEEN startMonth and endMonth) AND (YEAR(CURDATE()) BETWEEN startYear and endYear))
    

    【讨论】:

    • 这是不正确的。如果开始时间是 2011 年 10 月,结束时间是 2013 年 2 月怎么办。2012 年 1 月应该在它们之间,但上面的公式会说不是。
    • 是的,这不正确,但它让我找到了正确的方向 :)
    猜你喜欢
    • 1970-01-01
    • 2012-11-01
    • 2013-10-29
    • 2015-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-10
    相关资源
    最近更新 更多