sql >> Database teknologi >  >> RDS >> Oracle

hvordan man indsætter aktuel dato i et DATO-felt i formatet dd/mm/åååå i oracle

DATE er en indbygget type i Oracle, som er repræsenteret på en fast måde, og du har ingen kontrol over den.

Så:

Jeg vil have det til at indsætte [...] som 08/01/2011 12:00:00 AM

Ovenstående er useriøst. Du indsætter ikke en streng, du indsætter en dato.

Format er kun nyttigt, når du ønsker:

  • for at konvertere en streng til en intern repræsentation af dato med TO_DATE (formatmaske:hvordan man analyserer strengen);
  • for at konvertere en intern repræsentation af dato til en streng med TO_CHAR (formatmaske:hvordan man gengiver datoen).

Så dybest set, i dit eksempel tager du en DATO, du konverterer den til en STRING med et eller andet format og konverterer den tilbage til DATO med det samme format. Dette er en no-op.

Nu, hvad din klient viser:Dette skyldes, at din Oracle-klient ikke vil vise DATE-felter direkte, og NLS-laget vil konvertere ethvert DATE-felt, der er valgt. Så det afhænger af din lokalitet som standard.

Det, du ønsker, er SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual; som eksplicit udfører konverteringen og returnerer en streng.

Og når du vil indsætte en dato i en database, kan du bruge TO_DATE eller bogstaver for dato.



  1. GROUP eller DISTINCT efter JOIN returnerer dubletter

  2. Sikre dine Mongo Clusters med SSL

  3. Tekstkomprimering i PostgreSQL

  4. Heroku-databasegendannelsesproblem