pl sql datetime format
Lär dig mer om PL SQL Datetime Format och några användbara funktioner kring Datetime, Timestamp och Interval:
I PL / SQL Utlösare i PL SQL-serien , vi lärde oss om deras typer, användning och fördelar.
I den här artikeln kommer vi att utforska datum och tid i PL / SQL och några av funktionerna i datatyperna Datetime, Timestamp och Interval. Vi kommer också att göra några grundläggande operationer på Datetime och Interval.
Låt oss börja med diskussionen !!
Vad du kommer att lära dig:
PL SQL-datatidsformat
PL / SQL har en datatyp för datum / tid som låter oss hålla och beräkna datum, intervall och tider. Variabeln som är av typ datum eller tid innehåller ett värde som heter DateTime. Variabeln som håller intervalltatatypen kallas intervallet. Var och en av dessa datatyper har fält som anger värdet.
DateTime-datatyperna listas nedan:
- TIDSSTÄMPEL
- TIDSSTEMPEL MED TIDSZON
- TIDSSTEMPEL MED LOKAL TIDSZON
- DATUM
Intervalldatatyperna listas nedan:
- INTERVALDAG TILL ANDRA
- INTERVALLÅR TILL MÅNAD
DATUM
Datatiderna med fast längd lagras i datatypen DATE. Den omfattar tid på dagen från midnatt i sekunder. Datumavsnittet pekar på den första dagen i denna månad och tidsavsnittet pekar på midnatt. Den innehåller information om datum och tid i både antal och teckendatatyper.
SYSDATE är en datumfunktion som hämtar aktuell tid och datum. Rätt datumintervall är från 1 januari 4712 f.Kr. till 31 december 9999 e.Kr. Teckenvärdena i standardformatet (bestäms av Oracle initialiseringsparameter NLS_DATE_FORMAT) omvandlas naturligt av PL / SQL till DATE-värden.
Vi kan använda matematiska operationer som tillägg och subtraktion på datum. PL / SQL tolkar heltalslitteraler i form av dagar. Till exempel, SYSDATE + 1 poäng till imorgon.
TIDSSTÄMPEL
Datatypen tidsstämpel är en förlängning av datatypen DATE. Det används för att hålla år, månad, timme och sekund. Standardtidsstämpelformatet bestäms av Oracle-initieringsparametern NLS_TIMESTAMP_FORMAT.
Syntax:
TIMESTAMP((precision))
Här är precisionen inte en obligatorisk parameter och pekar på antalet siffror som är i den bråkdel av sekunderfältet. Precisionen bör vara valfritt heltal från 0 till 9. Standardvärdet är inställt på 6.
TIDSSTEMPEL MED TIDSZON
Denna datatyp är en förlängning av datatypen TIMESTAMP och innehåller tidszonsförskjutning. Tidszonens förskjutning är tidsskillnaden (i timmar och minuter) mellan lokal tid och UTC (Coordinated Universal Time).
Standardtidsstämpeln med tidszonformat bestäms av Oracle initialiseringsparameter NLS_TIMESTAMP_TZ_FORMAT. Syntax:
TIMESTAMP((precision)) WITH TIME ZONE
Här är precisionen inte en obligatorisk parameter och pekar på antalet siffror som är i den bråkdel av sekunderfältet. Precisionen bör vara valfritt heltal från 0 till 9. Standardvärdet är inställt på 6.
intervjufrågor och svar om kvalitetssäkringsanalytiker
Vi kan nämna tidszonen med symboler. Det kan vara av långform som 'USA / Stillahavsområdet' eller kort sagt som 'PDT' eller en kombination av båda. Således används denna datatyp för att täcka och beräkna information över geografiska platser.
TIDSSTEMPEL MED LOKAL TIDSZON
Tidsstämpel med datatyp för lokal tidszon är en förlängning av datatypen TIMESTAMP och innehåller tidszonsförskjutning. Tidszonens förskjutning är tidsskillnaden (i timmar och minuter) mellan lokal tid och UTC (Coordinated Universal Time).
Syntax:
TIMESTAMP ((precision)) WITH LOCAL TIME ZONE
Här är precisionen inte en obligatorisk parameter och pekar på räkningen av antalet siffror som finns i bråkdelen av sekundens fält. Precisionen bör vara valfritt heltal från 0 till 9. Standardvärdet är inställt på 6.
TIMESTAMP MED LOCAL TIME ZONE skiljer sig från TIMESTAMP WITH TIME ZONE på grund av att medan vi infogar värde i databasen sätts värdet till databasens tidszon och tidszonens förskjutning hålls inte i databaskolumnen. När du hämtar värdet returneras det dock i den lokala tidszonsessionen.
INTERVALLÅR TILL MÅNAD
Denna datatyp används för att lagra och beräkna år och månader.
Syntax:
INTERVAL YEAR ((precision)) TO MONTH
Här är precisionen räkningen av antalet siffror i ett års fält. Precisionen ska vara vilket heltal som helst från 0 till 4. Standardvärdet är 2.
INTERVALLÅR TILL ANDRA
Datatypen Intervall år till andra används för att lagra och beräkna dagar, timmar, minuter och sekunder.
Syntax:
INTERVAL DAY ((l_precision)) TO SECOND ((fractional_s_precision))
Här, den l_precision och fraktionerad_s_precision är antalet siffror i fältet dagar respektive sekunder.
Precisionen bör vara vilket heltal som helst från 0 till 9. Standardvärdena är inställda på 2 respektive 6.
Fältvärden: datatid och intervall
- ANDRA: Värdena för giltigt DateTime-intervall är från 00 till 59,9 (m) där m betecknar tidsfraktionssekunderna. Värdena för det giltiga intervallintervallet är från 00 till 59,9 (m) där m betecknar intervallets bråk sekunder.
- MINUT: Värdena för giltigt DateTime-intervall är från 00 till 59. Värdena för det giltiga intervallintervallet är från 0 till 59.
- TIMME: Värdena för giltigt DateTime-intervall är från 00 till 23. Värdena för det giltiga intervallintervallet är från 0 till 23.
- DAG: Värdena för giltigt DateTime-intervall är från 01 till 31 (begränsas av värdena YEAR och MONTH, enligt reglerna i den lokala kalendern). Värdet för ett giltigt intervallintervall är ett heltal som inte är noll.
- MÅNAD: Värdena för giltigt DateTime-intervall är från 01 till 12. Värdena för det giltiga intervallintervallet är från 0 till 11.
- ÅR: Värdena för giltigt DateTime-intervall är från -4712 till 9999 exklusive år 0. Värdet för det giltiga intervallintervallet är ett heltal som inte är noll.
- TIMEZONE_HOUR: Värdena för giltigt DateTime-intervall är från -12 till 14, det inkluderar sommartidsändringar. Detta gäller inte för det giltiga intervallintervallet.
- TIMEZONE_MINUTE: Värdena för giltigt DateTime-intervall är från 00 till 59. Detta gäller inte för det giltiga intervallintervallet.
- TIMEZONE_REGION: Värdena för giltigt DateTime-intervall är inte tillämpliga för DATE eller TIMESTAMP. Detta gäller inte för ett giltigt intervallintervall.
- TIMEZONE_ABBR: Värdena för giltigt DateTime-intervall är inte tillämpliga för DATE eller TIMESTAMP. Detta gäller inte för det giltiga intervallintervallet.
PL SQL-funktioner under datatid
Här innehåller m och n värdena för datatiden.
Sl No. | namn | Syften |
---|---|---|
7 | SYSDATE () | Hämtar nuvarande datumtid. |
ett | LAST_DAY (m) | Hämtar den sista dagen i månaden. |
två | ADD_MONTHS (m, n) | Sammanfattar m och n månader. |
3 | MONTHS_BETWEEN (m, n) | Hämtar antalet månader mellan m och n. |
4 | NÄSTA_DAG (m, dag) | Hämtar datatiden för följande dag efter m. |
5 | NÄSTA GÅNG | Hämtar tiden / dagen från den tidsbegränsade tidszonen för användaren. |
6 | RUND (m (, enhet)) | Rundar m. |
8 | TRUNC (m (, enhet)) | Trunkerar m. |
PL SQL-funktioner i tidsstämpel
Här innehåller m värdet på tidsstämpeln.
Sl No. | namn | Syften |
---|---|---|
7 | TO_TIMESTAMP_TZ (m, (format)) | Konverterar strängen m till en TIMESTAMP MED TIMEZONE. |
ett | CURRENT_TIMESTAMP () | Hämtar en TIMESTAMP MED TIMEZONE som har den aktuella sessionen och sessionens tidszon. |
två | FROM_TZ (m, tidszon) | Konverterar m TIMESTAMP och nämner tidszon till TIMESTAMP MED TIMEZONE. |
3 | LOCALTIMESTAMP () | Hämtar en TIMESTAMP som har lokal tid i sessionens tidszon. |
4 | SYSTEMTIMESTAMP () | Hämtar en TIMESTAMP MED TIMEZONE som har den aktuella databastiden och databasens tidszon. |
5 | SYS_EXTRACT_UTC (m) | Konverterar m TIMESTAMP MED TIMEZONE till TIMESTAMP med datum och tid i UTC. |
6 | TO_TIMESTAMP (m, (format)) | Konverterar strängen m till en TIMESTAMP. |
Kodimplementering med funktionerna Datetime och Timestamp:
BEGIN /* get the current date and time */ DBMS_OUTPUT.put_line ('The output of SYSDATE is:'|| SYSDATE); /* get the TIMESTAMP WITH TIME ZONE with database time and time zone */ DBMS_OUTPUT.put_line ('The output of SYSTIMESTAMP is:' ||SYSTIMESTAMP); /* get the TIMESTAMP with local time in session time zone */ DBMS_OUTPUT.put_line ('The output of LOCALTIMESTAMP:' ||LOCALTIMESTAMP); /*get the TIMESTAMP WITH TIME ZONE with present session time with session time zone */ DBMS_OUTPUT.put_line ('The output of CURRENT_TIMESTAMP:'||CURRENT_TIMESTAMP); /*convert string to TIMESTAMP*/ DBMS_OUTPUT.put_line ('The output of TIMESTAMP:'||TO_TIMESTAMP('12-JAN-2011')); /*to add months*/ DBMS_OUTPUT.put_line ('The output of ADD_MONTHS:'||ADD_MONTHS(SYSDATE,1)); /*to get date and time of following day*/ DBMS_OUTPUT.put_line ('The output of NEXT_DAY:'||NEXT_DAY(SYSDATE,'MONDAY')); /*to truncate date */ DBMS_OUTPUT.put_line ('The output of TRUNC:'||TRUNC(SYSDATE)); /*to get the last day of month */ DBMS_OUTPUT.put_line ('The output of LAST_DAY:'||LAST_DAY (SYSDATE)); END; /
Utmatning av ovanstående kod:
PL SQL-funktioner i intervall
Sl No. | namn | Syften |
---|---|---|
ett | NUMTODSINTERVAL (m, intervall) | Omvandlar talet m till INTERVAL DAY TO SECOND. |
två | NUMTOYMINTERVAL (m, intervall) | Omvandlar talet m till INTERVALLÅR TILL MÅNAD. |
3 | TO_DSINTERVAL (m) | Omvandlar strängen m till INTERVAL DAY TO SECOND. |
4 | TO_YMINTERVAL (m) | Omvandlar strängen m till INTERVALL ÅR TILL MÅNAD. |
Aritmetiska operationer i tid och intervall
Med PL / SQL kan du skapa DateTime och intervalluttryck.
Listan över operatörer som kan tillämpas är:
- Om den första operand är DateTime och den andra operand är ett intervall, och vi vill använda operatören (+) på dem, är resultatvärdet av DateTime-typ.
- Om den första operanden är DateTime och den andra operanden är ett intervall och vi vill använda (-) operatören på dem, är resultatvärdet av DateTime-typen.
- Om den första operand är intervall och den andra operand är DateTime, och vi vill använda (+) operatören på dem, är resultatvärdet av DateTime-typ.
- Om den första operanden är DateTime och den andra operanden är DateTime, och vi vill använda operatören (-) på dem, är resultatvärdet av intervalltyp.
- Om den första operanden är intervall och den andra operanden är ett intervall, och vi vill använda (+) operatören på dem, är resultatvärdet av intervalltyp.
- Om den första operanden är intervall och den andra operanden är ett intervall, och vi vill använda (-) operatören på dem, är resultatvärdet av intervalltyp.
- Om den första operanden är intervall och den andra operanden är numerisk, och vi vill använda (*) operatören på dem, är resultatvärdet av intervalltyp.
- Om den första operanden är numerisk och den andra operanden är ett intervall, och vi vill använda (*) operatören på dem, är resultatvärdet av intervalltyp.
- Om den första operanden är intervall och den andra operanden är numerisk, och vi vill använda operatören (/) på dem, är resultatvärdet av intervalltyp.
Kodimplementering med vissa aritmetiska operationer i Datetime och Interval.
DECLARE c_dt TIMESTAMP; r_dt TIMESTAMP; s_dt TIMESTAMP; BEGIN c_dt := SYSTIMESTAMP; r_dt:= c_dt + TO_DSINTERVAL ('1600 5:20:1'); DBMS_OUTPUT.PUT_LINE ('Addition of datetime and Interval:' ||r_dt); s_dt:= c_dt - TO_DSINTERVAL ('1600 5:20:1'); DBMS_OUTPUT.PUT_LINE ('Subtraction of datetime and Interval:' || s_dt); END;
Utgången från ovanstående kod:
Förklaring till ovanstående kod:
- I koden betyder (”1600 5: 20: 1”) 1600 dagar, 5 timmar, 20 minuter och 1 sekund .
- I den första utgången är den första operanden DateTime och den andra operand är ett intervall. När vi lade till dem fick vi ett datum som 24-DEC med tiden i AM.
- I den andra utgången är den första operanden DateTime och den andra operanden är ett intervall. När vi subtraherade först från det andra fick vi ett datum som 20-MAR med tid i PM.
Vanliga frågor och svar
F # 1) Vad är den aktuella tidsstämpeln?
Svar: Den aktuella tidsstämpeln eller CURRENT_TIMESTAMP beskriver en tidsstämpel som är beroende av avläsning av dygnsuret medan du kör ett SQL-uttalande på servern.
F # 2) Vad returnerar Sysdate i Oracle?
Svar: Funktionen Sysdate () hämtar aktuellt datum och tid som konfigurerats i operativsystemet där databasen finns. Datatypen för värdet som returneras av den är DATE.
F # 3) Vilken PL / SQL-funktion ger aktuellt systemdatum och -tid?
Svar: PL / SQL-funktionen som ger aktuellt systemdatum och -tid är SYSDATE ().
F # 4) Vad är DUAL SQL?
länkad listnod c ++
Svar: DUAL är en databastabell som standard skapats av Oracle tillsammans med en datalogg. Den innehåller en rad och en kolumn. DUAL ägs av SYS men kan användas av alla användare.
F # 5) Hur förklarar du en datumvariabel i PL SQL?
Svar: Vi kan deklarera en datumvariabel i PL / SQL med syntaxen nedan:
DECLARE stdt DATE := to_date ('06/06/2006', 'DD/MM/YYYY');
F # 6) Vad är datumformatet i Oracle?
Svar: Standarddatumformatet i Oracle för in- och utdata är ”DD / MON / YY”. Detta konfigureras av värdet i parametern NLS_DATE_FORMAT.
Slutsats
I denna handledning för PL SQL Datetime Format har vi i detalj diskuterat några grundläggande begrepp för PL / SQL Datum och tid som är nödvändiga för att använda dem vid programmering.
Vi har täckt följande ämnen som listas nedan:
- Datum och tid.
- Funktioner kring datatid, tidsstämpel och intervall.
- Aritmetiska operationer på Datetime och Interval.
- Fältvärden i Datetime och Interval.
Rekommenderad läsning
- Funktioner för datum och tid i C ++ med exempel
- Python DateTime-handledning med exempel
- C # DateTime-handledning: Arbeta med datum och tid i C # med exempel
- Delprogram: PL SQL-procedurer och funktioner med exempel
- VBScript Date-funktioner: Datumformat, DateAdd och cDate-funktioner
- PL SQL-handledning för nybörjare med exempel | Vad är PL / SQL