tried this with MS SQL
select DATEPART(wk, '20210101')
select DATEPART(wk, '20210102')
select DATEPART(wk, '20210103')
select DATEPART(wk, '20210104')
select DATEPART(wk, '20210105')
select DATEPART(wk, '20210106')
result
1
1
2
2
2
2
https://en.wikipedia.org/wiki/ISO_8601#Week_dates
And if you use the YEARWEEK() function in MySQL, you get the ISO 8601 standard results (including the year).
Ammammata <ammammata@tiscalinet.it> wrote in news:XnsAC27A96038455ammammatatiscalineti@127.0.0.1:
tried this with MS SQL
select DATEPART(wk, '20210101')
select DATEPART(wk, '20210102')
select DATEPART(wk, '20210103')
select DATEPART(wk, '20210104')
select DATEPART(wk, '20210105')
select DATEPART(wk, '20210106')
result
1
1
2
2
2
2
https://en.wikipedia.org/wiki/ISO_8601#Week_dates
And if you use the YEARWEEK() function in MySQL, you get the ISO 8601 standard results (including the year).
You've pointed out that MS SQL Server does not use the ISO 8601
standard for the definition of the week number.
tried this with MS SQL
select DATEPART(wk, '20210101')
select DATEPART(wk, '20210102')
select DATEPART(wk, '20210103')
select DATEPART(wk, '20210104')
select DATEPART(wk, '20210105')
select DATEPART(wk, '20210106')
result
1
1
2
2
2
2
https://en.wikipedia.org/wiki/ISO_8601#Week_dates
On 28-8-2020 16:38, Ammammata wrote:
tried this with MS SQL
select DATEPART(wk, '20210101')
select DATEPART(wk, '20210102')
select DATEPART(wk, '20210103')
select DATEPART(wk, '20210104')
select DATEPART(wk, '20210105')
select DATEPART(wk, '20210106')
result
1
1
2
2
2
2
https://en.wikipedia.org/wiki/ISO_8601#Week_dates
select DATEPART(isowk, '20210101')
select DATEPART(isowk, '20210102')
select DATEPART(isowk, '20210103')
select DATEPART(isowk, '20210104')
select DATEPART(isowk, '20210105')
select DATEPART(isowk, '20210106')
result
53
53
53
1
1
1
https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-ver15
On 29/08/2020 08:05 am, Luuk wrote:
On 28-8-2020 16:38, Ammammata wrote:
tried this with MS SQL
select DATEPART(wk, '20210101')
select DATEPART(wk, '20210102')
select DATEPART(wk, '20210103')
select DATEPART(wk, '20210104')
select DATEPART(wk, '20210105')
select DATEPART(wk, '20210106')
result
1
1
2
2
2
2
https://en.wikipedia.org/wiki/ISO_8601#Week_dates
select DATEPART(isowk, '20210101')
select DATEPART(isowk, '20210102')
select DATEPART(isowk, '20210103')
select DATEPART(isowk, '20210104')
select DATEPART(isowk, '20210105')
select DATEPART(isowk, '20210106')
result
53
53
53
1
1
1
https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-ver15
IIRC iso weeks start on Monday, ordinary weeks start on Sunday.
Look at the linux 'date' command, specifically %V (%G) and %U
That may suggest why 20210101 is isoweek 53.
tried this with MS SQL
select DATEPART(wk, '20210101')
select DATEPART(wk, '20210102')
select DATEPART(wk, '20210103')
select DATEPART(wk, '20210104')
select DATEPART(wk, '20210105')
select DATEPART(wk, '20210106')
result
1
1
2
2
2
2
https://en.wikipedia.org/wiki/ISO_8601#Week_dates
IIRC iso weeks start on Monday, ordinary weeks start on Sunday.
Look at the linux 'date' command, specifically %V (%G) and %U
That may suggest why 20210101 is isoweek 53.
As I (think I) recall... you can get the ISO week by counting
Thursdays in the year to date.
On 29/08/2020 08:05 am, Luuk wrote:
On 28-8-2020 16:38, Ammammata wrote:
tried this with MS SQL
select DATEPART(wk, '20210101')
select DATEPART(wk, '20210102')
select DATEPART(wk, '20210103')
select DATEPART(wk, '20210104')
select DATEPART(wk, '20210105')
select DATEPART(wk, '20210106')
result
1
1
2
2
2
2
https://en.wikipedia.org/wiki/ISO_8601#Week_dates
select DATEPART(isowk, '20210101')
select DATEPART(isowk, '20210102')
select DATEPART(isowk, '20210103')
select DATEPART(isowk, '20210104')
select DATEPART(isowk, '20210105')
select DATEPART(isowk, '20210106')
result
53
53
53
1
1
1
https://docs.microsoft.com/en-us/sql/t-sql/functions/datepart-transact-sql?view=sql-server-ver15
IIRC iso weeks start on Monday, ordinary weeks start on Sunday.
Look at the linux 'date' command, specifically %V (%G) and %U
That may suggest why 20210101 is isoweek 53.
select DATEPART(isowk, '20210103')
Try your experiment again using DATEPART(isowk,<date>) instead of
DATEPART (wk,<date>).
Why is the result above funny?
Hint before answering... the results aren't ISO week dates.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 296 |
Nodes: | 16 (2 / 14) |
Uptime: | 61:37:23 |
Calls: | 6,654 |
Files: | 12,200 |
Messages: | 5,331,534 |