我对Hive来说是全新的,我真的很感激一些帮助。
我的桌子上有一个日期栏,我想保留这个日期的月份和年份。我在excel中会做的如下:
datenew= date(year(old_date),month(old_date),1)
我的old_date格式为YYYY-MM-DD
。
谢谢!
答案 0 :(得分:0)
您可以将trunc
与mm
选项一起使用(适用于Hive版本1.2及更高版本),这将在一个月的第一天返回。
trunc(dateCol,'MM')
如果不支持trunc
,请使用
date_add(dateCol,1-day(dateCol))
答案 1 :(得分:0)
使用date_format
或trunc
功能,或substr()+concat()
。
演示:
hive> select current_date original_date,
> date_format(current_date,'yyyy-MM-01') `date_format`,
> trunc(current_date, 'MM') `trunc`,
> concat(substr(current_date,1,7),'-01') `substr`
> ;
OK
original_date date_format trunc substr
2018-05-30 2018-05-01 2018-05-01 2018-05-01
Time taken: 0.093 seconds, Fetched: 1 row(s)
答案 2 :(得分:0)
您可以使用TRUNC (date,fmt)
这是一个函数返回日期,截断日期的时间部分到格式模型fmt
指定的单位。它总是返回数据类型DATE的值:
示例:强>
hive> select trunc(current_date, 'MM');
OK
2018-05-01
hive> select trunc(current_date, 'YEAR');
OK
2018-01-01