我想这可能是你想要的。然而,它确实返回了 14 天的剩余时间,但正如 Jaugar Chang 在评论中指出的那样,如果 3 月 1 日和 3 月 15 日之间的差异是 14 天,那应该是正确的。
select
timestampdiff(
month,
start_date,
end_date
) as months,
datediff(
end_date,
timestampadd(
month,
timestampdiff(
month,
start_date,
end_date
)
,start_date
)
) as days_remain
from test;
示例 SQL 小提琴
样本结果:
| START_DATE | END_DATE | MONTHS | DAYS_REMAIN |
|------------------|----------------|--------|-------------|
| January, 01 2014 | March, 15 2014 | 2 | 14 |
| January, 10 2014 | March, 13 2014 | 2 | 3 |