Hive 蜂巢星期天开始?

Hive 蜂巢星期天开始?,hive,hiveql,Hive,Hiveql,我试图为给定的日期确定一周的开始时间(星期天,作为一个日期)。这项功能在星期天除外,因为一周的起始日期从星期一开始: 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-15”,提供日期为“2018-04-

我试图为给定的日期确定一周的开始时间(星期天,作为一个日期)。这项功能在星期天除外,因为一周的起始日期从星期一开始:

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-15”,提供日期为“2018-04-22”,而我想要的是“2018-04-22”。写一份案件陈述书来抵消星期天的损失是唯一的办法吗?我希望FROM_UNIXTIME()有一个很好的参数,它可以让周从周日开始。我在这些文档中没有找到它们:


您可以通过一个简单的技巧获得结果,而无需case语句

用7计算工作日的模数值,你应该会得到你的结果

SELECT DATE_SUB(CURRENT_DATE(), CAST(DATE_FORMAT(CURRENT_DATE(),'u')%7 AS INT));

您可以通过一个简单的技巧获得结果,而不需要case语句

用7计算工作日的模数值,你应该会得到你的结果

SELECT DATE_SUB(CURRENT_DATE(), CAST(DATE_FORMAT(CURRENT_DATE(),'u')%7 AS INT));