我试图找出两天之间的周数。当差异为 8 天时,我应该得到 1 或 2 周,具体取决于函数在 Redshift 中的工作方式(向上或向下舍入)。但是,无论选择哪种方式,它都应该是一致的。
我意识到我可以简单地取天数然后除以 7 并执行 ROUND 或 CEIL,但我只是想了解为什么 DATEDIFF(weeks, date1, date2) 在我有 1 或 2 时提供两个相差 8 天的日期。
SELECT
DATEDIFF(weeks, '2019-03-17', '2019-03-25') AS week_difference1,
DATEDIFF(days, '2019-03-17', '2019-03-25') AS day_difference1,
DATEDIFF(weeks, '2019-03-16', '2019-03-24') AS week_difference2,
DATEDIFF(days, '2019-03-16', '2019-03-24') AS day_difference2
结果:week_difference1 = 1
day_difference1 = 8
week_difference2 = 2
day_difference2 = 8