sql >> Database >  >> RDS >> Oracle

hoe de huidige datum in een DATE-veld in te voegen in dd/mm/jjjj-formaat in oracle

DATE is een ingebouwd type in Oracle, dat op een vaste manier wordt weergegeven en waar je geen controle over hebt.

Dus:

Ik wil dat het wordt ingevoegd [...] als 08/01/2011 12:00:00 AM

Bovenstaande is onzinnig. Je voegt geen string in, je voegt een datum in.

Formaat is alleen nuttig wanneer u dat wilt:

  • om een ​​string te converteren naar een interne weergave van de datum met TO_DATE (format mask:hoe de string te ontleden);
  • om een ​​interne weergave van de datum om te zetten in een string met TO_CHAR (format masker:hoe de datum te renderen).

Dus eigenlijk, in jouw voorbeeld neem je een DATE, converteer je het naar een STRING met een bepaald formaat, en converteer je het terug naar DATE met hetzelfde formaat. Dit is een no-op.

Wat nu uw client weergeeft:dit komt omdat uw Oracle Client DATE-velden niet rechtstreeks weergeeft en de NLS-laag elk geselecteerd DATE-veld converteert. Het hangt dus standaard af van uw landinstelling.

Wat je wilt is SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual; die de conversie expliciet uitvoert en een tekenreeks retourneert.

En wanneer u een datum in een database wilt invoegen, kunt u TO_DATE . gebruiken of datumletters.



  1. Wat zijn SQL-operators en hoe werken ze?

  2. Rijen herhalen op basis van kolomwaarde in elke rij

  3. importeer reeds gemaakte sqlite-database (xamarin)

  4. OAuth gebruiken om uw ODBC-verbinding met Salesforce.com te verifiëren