我在蜂巢中有一个“日期”字段列,为此我必须计算星期五的星期日期。什么是实现此目的的最佳方法?你能帮我这个忙吗?
答案 0 :(得分:0)
您可以从给定日期的工作日中减去5天(工作日的星期五),将其截断到该周的星期五。
select date_add(your_date,cast(5-from_unixtime(unix_timestamp(your_date,'yyyy-MM-dd'),'u') as int))
答案 1 :(得分:0)
如果您的字段是日期格式,甚至没有将其强制转换为日期,您甚至可以尝试这样做。
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