【发布时间】:2016-11-20 12:57:31
【问题描述】:
我正在寻找一种方法来准确倒计时直到圣诞节,以天数计。我试过了……
(SELECT DATEDIFF(CONCAT(YEAR(CURDATE()), '-12-25'), NOW())) as days
但是,这将返回圣诞节和新年之间的负日期。 我想如果这个数字是负数,我可以添加 365,但这不会考虑闰年。对更好的解决方案有什么建议吗?
非常感谢!
【问题讨论】:
我正在寻找一种方法来准确倒计时直到圣诞节,以天数计。我试过了……
(SELECT DATEDIFF(CONCAT(YEAR(CURDATE()), '-12-25'), NOW())) as days
但是,这将返回圣诞节和新年之间的负日期。 我想如果这个数字是负数,我可以添加 365,但这不会考虑闰年。对更好的解决方案有什么建议吗?
非常感谢!
【问题讨论】:
这很粗略,但应该可以解决问题。查看结果是否为负,如果是,则在年份中加一:
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"
【讨论】: