星期天蜂巢开始一周?

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));

【讨论】:

以上是关于星期天蜂巢开始一周?的主要内容,如果未能解决你的问题,请参考以下文章

MatDatePicker 从星期一开始一周

从不同的起始日开始一周

JAVA给一个时间获取一年的第几周,正常自然周是 星期一至星期日为一周,

使用当前日期生成一周的所有日期,还显示周一的周开始日期和周日的周末

使用存储过程将星期一计算为一周的第一天

使用 DST 获取当前一周的开始/结束日期