-2

So let's say

WEEK(Date,1)

returns 32, how do I get it to give me date of the Monday of that week, so that it returns 2017-08-07?

philipxy
  • 14,867
  • 6
  • 39
  • 83

1 Answers1

0
select if(weekday('2017-08-05') != 0, 
case 
when weekday('2017-08-05') =6 then date_sub('2017-08-05', interval 6     
day) 
when weekday('2017-08-05') =5 then date_sub('2017-08-05', interval 5     
day)
when weekday('2017-08-05') =4 then date_sub('2017-08-05', interval 4     
day)
when weekday('2017-08-05') =3 then date_sub('2017-08-05', interval 3 
day)
when weekday('2017-08-05') =2 then date_sub('2017-08-05', interval 2 
day)
when weekday('2017-08-05') =1 then date_sub('2017-08-05', interval 1 
day) end,'2017-08-05') as Date_of_Monday;

Shall give you the date of 'Monday' of the week of the Date you give as input

For the above query, I gave input as 2017-08-05 and it gave the result as 2017-07-31 which is the Monday of the week the date 2017-08-05 falls in.

Krishnakumar
  • 725
  • 1
  • 6
  • 11