Date 周末周五蜂巢约会

Date 周末周五蜂巢约会,date,hive,Date,Hive,我在hive中有一个日期字段列,我必须计算该周的星期五。实现这一点的最佳方法是什么。你能帮我一下吗。你可以从给定日期的星期天减去5天(星期五的星期日数),将其截断为该周的星期五 select date_add(your_date,cast(5-from_unixtime(unix_timestamp(your_date,'yyyy-MM-dd'),'u') as int)) 如果您的字段是日期格式,您甚至可以尝试此操作,如果不将其转换为日期 select case when date_for

我在hive中有一个日期字段列,我必须计算该周的星期五。实现这一点的最佳方法是什么。你能帮我一下吗。

你可以从给定日期的星期天减去5天(星期五的星期日数),将其截断为该周的星期五

select date_add(your_date,cast(5-from_unixtime(unix_timestamp(your_date,'yyyy-MM-dd'),'u') as int))

如果您的字段是日期格式,您甚至可以尝试此操作,如果不将其转换为日期

select  case
when date_format('2018-07-30','E')='Sun' THEN DATE_ADD(cast('2018-07-30' as date),5)
when date_format('2018-07-30','E')='Mon' THEN DATE_ADD(cast('2018-07-30' as date),4)
when date_format('2018-07-30','E')='Tue' THEN DATE_ADD(cast('2018-07-30' as date),3)
when date_format('2018-07-30','E')='Wed' THEN DATE_ADD(cast('2018-07-30' as date),2)
when date_format('2018-07-30','E')='Thu' THEN DATE_ADD(cast('2018-07-30' as date),1)
when date_format('2018-07-30','E')='Fri' THEN '2018-07-30'
when date_format('2018-07-30','E')='Sat' THEN DATE_ADD(cast('2018-07-30' as date),-1)
end as a

星期六和星期天你想做什么?是前一个星期五还是下一个星期五?