[SQL] Van een datum de dag voluit laten zien

Pagina: 1
Acties:
  • 409 views sinds 30-01-2008
  • Reageer

  • Bram
  • Registratie: Oktober 1999
  • Niet online

Bram

..........

Topicstarter
Ik heb al wat dingen geprobeerd met to_date en to_char maar het wil maar niet lukken.

Ik heb:

select to_char(sysdate, 'Month Day, YYYY') DATUM from dual

Daar komt uit:

November Maandag , 2004


Nu wil ik ipv sysdate een eigen datum opgeven, maar hij zegt de hele tijd invalid number.

1 select to_char('12-10-2004', 'Day MONTH, YEAR')
2* from dual
select to_char('12-10-2004', 'Day MONTH, YEAR')
*
FOUT in regel 1:
.ORA-01722: invalid number

Ik zal wel iets heel stoms doen, maar kom er effe niet uit. Wie weet het?

  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
TO_CHAR converteert een datumwaarde (numeriek) naar string.
Aangezien '12-10-2004' een stringwaarde is gaat het daar dus fout.

Vlinders moet je volgen, niet vangen...


  • zwippie
  • Registratie: Mei 2003
  • Niet online

zwippie

Electrons at work

Probeer de datum eens op een andere manier mee te geven, bv

select to_char('12102004', 'Day MONTH, YEAR')

of een variant: MMDDYYYY etc.

How much can you compute with the "ultimate laptop" with 1 kg of mass and 1 liter of volume? Answer: not more than 10^51 operations per second on not more than 10^32 bits.


  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024

Vlinders moet je volgen, niet vangen...


  • Bram
  • Registratie: Oktober 1999
  • Niet online

Bram

..........

Topicstarter
Bedankt heb het 1 en ander kunnen vinden op die website.

Alleen staat op de website deze code, als ik die intik krijg ik 09-07-03 ipv de uitkomst wat op de site staat.

to_date ('070903', 'MMDDYY'); would return a date value of July 7, 2003


Ik denk dat deze syntax van belang is:
to_date (string1, [format_mask], [nls_language] )

Ik wil dus een zelf gekozen datum en dan wil ik dat SQL bijv maand 07 omzet naar maand Juli.

Ik dacht dat het zo moest:

1 select to_date('070903', 'MMDDYY','MONTH DAY,YEAR')
2* from dual
FOUT in regel 1:
.ORA-12702: invalid NLS parameter string used in SQL function

Maar dat gaat dus niet goed., ik blijf iig effe wat dingetjes proberen mocht iemand nog wat tips hebben of weten hoe het moet dan hoor ik dat graag.

  • General_Failure
  • Registratie: Oktober 2000
  • Laatst online: 15:14

General_Failure

Vrolijk Pasen!!!

Met to_date zet je het eerst in datumformaat, waarna het met to_char weer in je eigen formaat kunt zetten. Dus:
select to_char(to_date('070903', 'MMDDYY'),'MONTH DAY,YEAR') from dual

Het ziet er wat omslachtig uit, maar werkt tenminste altijd. Je kunt het standaard datum formaat gebruiken, wat zo te zien DD-MM-YY is, waardoor select to_char('09-07-03') from dual vermoedelijk ook werkt. Dit is echter afhankelijk van de database en dus alleen bij het testen handig (scheelt typwerk).

[ Voor 7% gewijzigd door General_Failure op 08-11-2004 10:52 ]

Me and my dear friend General Protection-Error will invade your computer with our mighty army of Bugs. We will avoid the Firewall at the Gates of your PC by entering through your Windows.


  • Bram
  • Registratie: Oktober 1999
  • Niet online

Bram

..........

Topicstarter
General_Failure schreef op 08 november 2004 @ 10:51:
Met to_date zet je het eerst in datumformaat, waarna het met to_char weer in je eigen formaat kunt zetten. Dus:
select to_char(to_date('070903', 'MMDDYY'),'MONTH DAY,YEAR') from dual

Het ziet er wat omslachtig uit, maar werkt tenminste altijd. Je kunt het standaard datum formaat gebruiken, wat zo te zien DD-MM-YY is, waardoor select to_char('09-07-03') from dual vermoedelijk ook werkt. Dit is echter afhankelijk van de database en dus alleen bij het testen handig (scheelt typwerk).
Het werkt , en dat is het belangrijkste :) Thanks
Pagina: 1