sql >> Database >  >> RDS >> Oracle

hoe de datum naar tijd te veranderen in orakel 10g

Ik moet STIMING . invoeren een keer

Oracle heeft geen TIME data type. De DATE gegevenstype wordt altijd intern opgeslagen als 7-bytes en is altijd samengesteld uit jaar (2-bytes) en maand, dag, uren, minuten en seconden (elk 1-byte).

Je kan niet geen jaar-, maand- of dagcomponent hebben van een DATE .

Als u alleen een tijd wilt, moet u deze opslaan als een ander gegevenstype of jaar/maand/dag opslaan en dat onderdeel negeren.

Wanneer je SELECT bent de STIMING kolom wordt de tijdcomponent niet weergegeven. U kunt dit wijzigen door de standaard datumnotatie te wijzigen die is ingesteld in de NLS_DATE_FORMAT sessieparameter.

U kunt deze parameter bekijken met:

SELECT VALUE FROM NLS_SESSION_PARAMETERS WHERE PARAMETER = 'NLS_DATE_FORMAT';

U kunt deze waarde binnen uw huidige sessie instellen met:

ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

(Opmerking:dit verandert niets aan de waarde voor andere gebruikers.)

Wanneer u de datum invoert, kunt u het volgende gebruiken:

INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TO_DATE( '01-APR-2017 07:00' DD-MON-YYYY HH24:MI' ) )

Of een ANSI TIMESTAMP letterlijk (die impliciet zal worden gegoten op de DATE formaat van de kolom):

INSERT INTO shift ( SNO, SNAME, STIMING)
VALUES ( 121323, 'morning', TIMESTAMP '2017-04-01 07:00:00' )


  1. Gids voor het ontwerpen van een database voor kalendergebeurtenissen en herinneringen in MySQL

  2. PostgreSQL kolommen naar rijen converteren? transponeren?

  3. ListView Control Tutorial-02

  4. Hoofdlettergevoelige variabelen in SQL Server