sql - 如何使用周六作为周结束日期在 hive 中计算周结束日期?

标签 sql date hadoop hive dayofweek

考虑到周六在周六结束,我有一种情况要计算周结束日期(给定日期)。我读了一些答案,但是找不到解决方案,所以我在这里发布我的方法。希望它能帮助像我这样的人。

select 
TransactionDateTime,
from_unixtime(unix_timestamp(TransactionTime),'u') as wkday,
date_add (TransactionDateTime,
case when from_unixtime(unix_timestamp(TransactionTime),'u')=7 then 6 
when from_unixtime(unix_timestamp(TransactionTime),'u')=1 then 5
when from_unixtime(unix_timestamp(TransactionTime),'u')=2 then 4
when from_unixtime(unix_timestamp(TransactionTime),'u')=3 then 3
when from_unixtime(unix_timestamp(TransactionTime),'u')=4 then 2
when from_unixtime(unix_timestamp(TransactionTime),'u')=5 then 1
when from_unixtime(unix_timestamp(TransactionTime),'u')=6 then 0
end) as UsageWkEndDt
from TransTable;

最佳答案

select 
TransactionDateTime,
from_unixtime(unix_timestamp(TransactionTime),'u') as wkday,
date_add (TransactionDateTime,
case when from_unixtime(unix_timestamp(TransactionTime),'u')=7 then 6 
when from_unixtime(unix_timestamp(TransactionTime),'u')=1 then 5
when from_unixtime(unix_timestamp(TransactionTime),'u')=2 then 4
when from_unixtime(unix_timestamp(TransactionTime),'u')=3 then 3
when from_unixtime(unix_timestamp(TransactionTime),'u')=4 then 2
when from_unixtime(unix_timestamp(TransactionTime),'u')=5 then 1
when from_unixtime(unix_timestamp(TransactionTime),'u')=6 then 0
end) as UsageWkEndDt
from TransTable;

关于sql - 如何使用周六作为周结束日期在 hive 中计算周结束日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35774766/

相关文章:

mysql - SQL 按不同值排序

sql - 查看命中 SQL 的查询

java - 日期计算器 : Selenium Web Driver

hadoop - 在 webhdfs 中是否有等效的移动

java - 如何在 HDFS Hadoop (Cloudera) java 中创建目录到文件

php - 简单 'SELECT field FROM table_name where TO = "$to"' 返回 MySQL 错误 1064

sql - mysql查询性能

构造函数的 Javascript Date() 参数

javascript - 在生成 d3 图之前过滤数据

hadoop - 如何在不导致 Hadoop 进入安全模式的情况下限制 DataNode 上的磁盘使用?