Avatar billede splatter Nybegynder
08. januar 2002 - 15:59 Der er 2 kommentarer og
1 løsning

\"Flot\" håndtering af d. 31 i år 2001......

select to_char(to_date(\'31-12-2001\',\'dd/mm/yyyy\') ,\'IYYY\') YEAR from dual

giver mig resultatet 2002.... Det virker fint for
d. 31 år 1999 og 2000. Det virker som en lidt sjov håndtering af år 2000 problemet *g*

Har jeg overset noget? Eller har oracle en bug som jeg ikke ville være særligt stolt af som udvikler at have været med til?

Avatar billede Slettet bruger
08. januar 2002 - 16:20 #1
Skal der ikke stå \'31/12/2001\' når du nu skriver det i formatet?
Avatar billede Slettet bruger
08. januar 2002 - 16:21 #2
Hvad betyder \'IYYY\'?

Hvis jeg skriver \'YYYY\' virker det fint...
Avatar billede holdam Nybegynder
08. januar 2002 - 18:49 #3
Løsningen ligger i at der er tale om et årstal i ISO-format. En iso-uge starter på en mandag og slutter på en søndag. Afhængig af ugedagen for første januar, er den uge som skærer nytåret enten uge 53 i \"året før\" eller uge 1 i \"året efter\". Og ISO-året følger ISO-ugen.

Det kan læses i \"Oracle8i National Language Support Guide\".

\"To support the ISO standard, a format element IW is provided that returns the ISO week number. In addition, format elements I IY IYY and IYYY, equivalent in behavior to the format elements Y, YY, YYY, and YYYY, return the year relating to the ISO week number.

In the ISO standard, the year relating to an ISO week number can be different from the calendar year. For example, 1st Jan 1988 is in ISO week number 53 of 1987. A week always starts on a Monday and ends on a Sunday.

If January 1 falls on a Friday, Saturday, or Sunday, then the week including January 1 is the last week of the previous year, because most of the days in the week belong to the previous year.

If January 1 falls on a Monday, Tuesday, Wednesday, or Thursday, then the week is the first week of the new year, because most of the days in the week belong to the new year.

For example, January 1, 1991, is a Tuesday, so Monday, December 31, 1990, to Sunday, January 6, 1991, is week 1. Thus, the ISO week number and year for December 31, 1990, is 1, 1991. To get the ISO week number, use the format mask \"IW\" for the week number and one of the \"IY\" formats for the year.\"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester