-
How to get a Monday's date for a given Year & Week number?
How to get the Monday's date for an any given Year and week number (e.g. 2001/01 = Monday 1/1/2001)
Pras :cool:
-
Since you can't use the "ww" format for input, I would write a pl/sql function.
Jeff Hunter
-
What will be the code in pl/sql to get date(Monday) for a given year and week number as per the problem described above.
Thanks
Pras :cool:
-
-
select to_date('01-JAN-&YYYY') + (&wk -1)*7 + r - 1
from dual , ( select rownum r from tab where rownum < 7 )
where to_char(to_date('01-JAN-&YYYY') +(&wk -1)*7 + r -1 , 'DY') = 'MON'
You might have to change the logic to derive the first day of the first week in the given year and use that instead of '01-JAN-&YYYY'.
This is the closest i could get..
-
Originally posted by Victoria
select to_date('01-JAN-&YYYY') + (&wk -1)*7 + r - 1
from dual , ( select rownum r from tab where rownum < 7 )
where to_char(to_date('01-JAN-&YYYY') +(&wk -1)*7 + r -1 , 'DY') = 'MON'
You might have to change the logic to derive the first day of the first week in the given year and use that instead of '01-JAN-&YYYY'.
This is the closest i could get..
Hai victoria,
Can you explain me this logic please.. why u r using r variable
-
Lets say wk = 2, then
to_date('01-JAN-&YYYY') + (&wk -1)*7 will give me the first day of the 2nd week following '01-JAN-&YYYY' .
Now from that date onwards, you have to test if it is a Monday and you have to test this for the 7 days in that week.
Since there is no loop functionality in sql, I used an inline view
( select rownum r from tab where rownum < 7 ) which is 1 through 6. But I had to subtract 1 because I dont want to miss the start date.
-
I'll never stop being amazed at what you can do in SQL...
Jeff Hunter
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|