gpt4 book ai didi

sql - MONTHS_BETWEEN ('2018-12-31' , '2019-02-28' ) 输出 1?

转载 作者:行者123 更新时间:2023-12-05 04:22:10 25 4
gpt4 key购买 nike

enter image description here

如上所示,这已导致与我们的数据不一致。我目前正在编写一个 AMDP 逻辑,它利用每条记录的月份之间的差异,但令人惊讶的是,函数 MONTHS_BETWEEN() 在所有情况下都不一致,并且似乎在非常具体的情况下跳过月份。我不知道是什么原因造成的。有没有办法解决这种不一致或某种替代解决方案(如果没有)?谢谢。

最佳答案

感谢评论,我发现函数 MONTHS_BETWEEN() 的结果是根据两者之间的天数计算的。我最初假设它只使用月份的值进行计算,因此预计 2019 年 2 月与 2018 年 12 月相差 2 个月。

鉴于此,我能够想出一个相当不错的解决方案,将日期转换为该月的第一天,以保证任意两个给定日期值的月份差异。

下面是一段 SQL 代码和相应的结果: enter image description here

此解决方法之后假设所比较的日期都是任何给定月份的最后几天。如果不是这种情况,则需要将使用 LAST_DAY() 函数的预处理插入到 NEXT_DAY() 函数中,以使其工作类似。

***编辑:使用 LEFT() 和 CONCATENATING 与 '01' 手动编辑字符串日期值似乎是一种更有效和直接的方法。我无法上传屏幕截图,但这是工作代码:

SELECT MONTHS_BETWEEN(
LEFT('2018-12-31', 8) || '01',
LEFT('2019-02-28', 8) || '01'
) AS dmonths
FROM dummy

关于sql - MONTHS_BETWEEN ('2018-12-31' , '2019-02-28' ) 输出 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74043404/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com