【问题标题】:MySQL number of days until next occurrence of a date?MySQL距离下一次出现日期的天数?
【发布时间】:2016-11-20 12:57:31
【问题描述】:

我正在寻找一种方法来准确倒计时直到圣诞节,以天数计。我试过了……

(SELECT DATEDIFF(CONCAT(YEAR(CURDATE()), '-12-25'), NOW())) as days

但是,这将返回圣诞节和新年之间的负日期。 我想如果这个数字是负数,我可以添加 365,但这不会考虑闰年。对更好的解决方案有什么建议吗?

非常感谢!

【问题讨论】:

    标签: mysql countdown


    【解决方案1】:

    这很粗略,但应该可以解决问题。查看结果是否为负,如果是,则在年份中加一:

    Select Case DateDiff(Concat(Year(CurDate()), '-12-25'), Now())) < 0
             Then DateDiff(Concat(Year(CurDate())+1, '-12-25'), Now())) 
             Else DateDiff(Concat(Year(CurDate()), '-12-24'), Now())) End As "days"
    

    【讨论】:

    • 效果很好,不知道为什么我没有想到使用 CASE 子句。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-29
    • 2013-07-15
    • 1970-01-01
    • 1970-01-01
    • 2013-12-05
    相关资源
    最近更新 更多