gpt4 book ai didi

hadoop - hive 获取每个月的结束日期

转载 作者:可可西里 更新时间:2023-11-01 15:52:16 27 4
gpt4 key购买 nike

我想要每个月的最后一个日期,例如 1 月 31 日、2 月 28 日,等等。我在下面尝试使用 current_date 并且它有效但是当我使用我的日期列时它返回 null:

SELECT datediff(CONCAT(y, '-', (m + 1), '-', '01'), CONCAT(y, '-', m, '-', '01')) FROM 
(SELECT
month(from_unixtime(unix_timestamp(C_date, 'yyyyMMdd'),'yyyy-MM-dd') ) as m,
year(from_unixtime(unix_timestamp(C_date, 'yyyyMMdd'),'yyyy-MM-dd') ) as y,
day(from_unixtime(unix_timestamp(C_date, 'yyyyMMdd'),'yyyy-MM-dd') )
from table2 ) t

返回:

_c0
NULL

SELECT
month(from_unixtime(unix_timestamp(C_date, 'yyyyMMdd'),'yyyy-MM-dd') ) as m,
year(from_unixtime(unix_timestamp(C_date, 'yyyyMMdd'),'yyyy-MM-dd') ) as y,
day(from_unixtime(unix_timestamp(C_date, 'yyyyMMdd'),'yyyy-MM-dd') )
from table2) t

返回:

m   | y  | _c2|
3 |2017| 21|

提前致谢。

最佳答案

使用last_day()day() 函数:

hive> select day(last_day(current_date)) ;
OK
31
Time taken: 0.079 seconds, Fetched: 1 row(s)

在应用 last_day() 之前应用 to_date() 转换您的列。

关于hadoop - hive 获取每个月的结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47836262/

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