Created 09-25-2018 10:14 AM
Created 09-25-2018 03:25 PM
Using SQL
-- First Day of the week select date_sub('2018-09-25',pmod(datediff('2018-09-25','1900-01-07'),7)); +-------------+--+ | _c0 | +-------------+--+ | 2018-09-23 | +-------------+--+ -- Last Day of the week select date_add('2018-09-25',6 - pmod(datediff('2018-09-25','1900-01-07'),7)); +-------------+--+ | _c0 | +-------------+--+ | 2018-09-29 | +-------------+--+
If my answer helped to solve your problem, accept the answer. It might help others in the community.
Created 09-25-2018 11:05 AM
You can write a custom UDF in Hive to pick any day of the week. You can refer lastDay UDF code as an example
// Code in Custom UDF FirstDayOfWeek SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); Calendar calendar = Calendar.getInstance(); calendar.setTime(formatter.parse("2018-09-16")); // Actual Date string column here calendar.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY); System.out.println(calendar.getTime());
Created 09-25-2018 03:25 PM
Using SQL
-- First Day of the week select date_sub('2018-09-25',pmod(datediff('2018-09-25','1900-01-07'),7)); +-------------+--+ | _c0 | +-------------+--+ | 2018-09-23 | +-------------+--+ -- Last Day of the week select date_add('2018-09-25',6 - pmod(datediff('2018-09-25','1900-01-07'),7)); +-------------+--+ | _c0 | +-------------+--+ | 2018-09-29 | +-------------+--+
If my answer helped to solve your problem, accept the answer. It might help others in the community.
Created 09-28-2018 07:04 AM
Hi
I tried for my scenario I am getting
Also week must start with monday and end with sunday.
select date_sub('2018-09-12',pmod(datediff('2018-09-12','1900-01-07),7))
2018-09-09 I am getting sep 9 th which is Sunday. but for my scenario the week must start with sep 10 th monday
select date_add('2018-09-12',7 - pmod(datediff('2018-09-12','1900-01-07'),7));
2018-09-16
Created 09-28-2018 07:21 AM
If First day of week should start from Monday, change the subtraction/addition date to 1900-01-08
--First day of the week as Monday select date_sub('2018-09-12',pmod(datediff('2018-09-12','1900-01-08'),7)); +-------------+--+ | _c0 | +-------------+--+ | 2018-09-10 | +-------------+--+ --Last day of the week as Sunday select date_add('2018-09-12',6 - pmod(datediff('2018-09-12','1900-01-08'),7)); +-------------+--+ | _c0 | +-------------+--+ | 2018-09-16 | +-------------+--+