星期天蜂巢开始一周?
Posted
技术标签:
【中文标题】星期天蜂巢开始一周?【英文标题】:Hive start of week on Sunday? 【发布时间】:2018-04-23 20:54:24 【问题描述】:我正在尝试获取给定日期的一周开始(星期日,作为日期)。由于一周中的某一天从星期一开始,这在星期日除外:
SELECT DATE_SUB(FROM_UNIXTIME(UNIX_TIMESTAMP(CURRENT_DATE(), 'yyyy-MM-dd')), CAST(FROM_UNIXTIME(UNIX_TIMESTAMP(CURRENT_DATE(), 'yyyy-MM-dd'), 'u') AS INT))
上面的函数将为提供的日期“2018-04-22”返回“2018-04-15”,而我想要“2018-04-22”。唯一的办法是写一份案例陈述来抵消星期天的费用吗?我希望 FROM_UNIXTIME() 有一个很好的参数,可以让星期从星期日开始。我没有在这些文档中找到它们:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html
【问题讨论】:
【参考方案1】:你可以通过一个没有case语句的简单技巧得到结果。
用 7 计算工作日的模值,你应该得到你的结果。
SELECT DATE_SUB(CURRENT_DATE(), CAST(DATE_FORMAT(CURRENT_DATE(),'u')%7 AS INT));
【讨论】:
以上是关于星期天蜂巢开始一周?的主要内容,如果未能解决你的问题,请参考以下文章
JAVA给一个时间获取一年的第几周,正常自然周是 星期一至星期日为一周,