pl sql datetime format
Obteniu més informació sobre PL SQL Datetime Format i algunes funcions útils sobre Datetime, Timestamp i Interval:
A la PL / SQL Desencadenants dins Sèrie PL SQL , vam conèixer els seus tipus, ús i avantatges.
En aquest article, explorarem la data i l’hora a PL / SQL i algunes de les funcions dels tipus de dades Datetime, Timestamp i Interval. A més, farem algunes operacions bàsiques sobre Datetime i Interval.
Comencem amb la discussió !!
Què aprendreu:
Format SQL Data PL
PL / SQL té un tipus de dades de data / hora que ens permet mantenir i calcular dates, intervals i hores. La variable que és del tipus data o hora conté un valor anomenat DateTime. La variable que manté el tipus de dades d’interval s’anomena interval. Cadascun d'aquests tipus de dades té camps que defineixen el valor.
A continuació s’enumeren els tipus de dades DateTime:
- TIMESTAMP
- TIMESTAMP AMB ZONA HORARIA
- TIMESTAMP AMB ZONA HORARIA LOCAL
- DATA
Els tipus de dades d'interval es detallen a continuació:
- INTERVAL DIA A SEGONA
- INTERVAL CURS AL MES
DATA
Les hores de dades de longitud fixa s’emmagatzemen al tipus de dades DATE. Comprèn l'hora del dia a partir de mitjanit en segons. La secció de data apunta al primer dia del mes actual i la secció d’hora assenyala la mitjanit. Conté informació sobre data i hora tant en tipus de dades de números com de caràcters.
SYSDATE és una funció de data que recupera l’hora i la data actuals. L’interval de dates adequat va des de l’1 de gener de 4712 aC fins al 31 de desembre de 9999 dC. Els valors de caràcters en el format predeterminat (determinats pel paràmetre d’inicialització d’Oracle NLS_DATE_FORMAT) es converteixen de forma natural en valors PL / SQL a DATE.
Podem aplicar operacions matemàtiques com sumar i restar en dates. PL / SQL interpreta els literals enters en forma de dies. Per exemple, SYSDATE + 1 punt per demà.
TIMESTAMP
El tipus de dades de marca de temps és una extensió del tipus de dades DATE. S'utilitza per contenir l'any, mes, hora i segon. El format de marca de temps per defecte el determina el paràmetre d'inicialització d'Oracle NLS_TIMESTAMP_FORMAT.
Sintaxi:
TIMESTAMP((precision))
Aquí, la precisió no és un paràmetre obligatori i apunta al recompte del nombre de dígits que hi ha a la part fraccionada del camp de segons. La precisió ha de ser qualsevol literal enter de 0 a 9. El valor per defecte s'estableix en 6.
TIMESTAMP AMB ZONA HORARIA
Aquest tipus de dades és una extensió del tipus de dades TIMESTAMP i conté el desplaçament de la zona horària. El desplaçament de la zona horària és la diferència horària (en hores i minuts) entre l’hora local i el temps universal coordinat (UTC).
La marca de temps per defecte amb el format de zona horària està determinada pel paràmetre d'inicialització d'Oracle NLS_TIMESTAMP_TZ_FORMAT. Sintaxi:
TIMESTAMP((precision)) WITH TIME ZONE
Aquí la precisió no és un paràmetre obligatori i apunta al recompte del nombre de dígits que hi ha a la part fraccionada del camp de segons. La precisió ha de ser qualsevol literal enter de 0 a 9. El valor per defecte s'estableix en 6.
Preguntes i respostes de l'entrevista de suport tècnic
Podem esmentar la zona horària amb símbols. Pot ser de forma llarga com ara 'EUA / Pacífic' o, en definitiva, com 'PDT' o una combinació d'ambdós. Per tant, aquest tipus de dades s’utilitza per cobrir i computar informació en ubicacions geogràfiques.
TIMESTAMP AMB ZONA HORARIA LOCAL
La marca de temps amb el tipus de dades de zona horària local és una extensió del tipus de dades TIMESTAMP i conté el desplaçament de la zona horària. El desplaçament de la zona horària és la diferència horària (en hores i minuts) entre l’hora local i el temps universal coordinat (UTC).
Sintaxi:
TIMESTAMP ((precision)) WITH LOCAL TIME ZONE
Aquí, la precisió no és un paràmetre obligatori i apunta al recompte del nombre de dígits que hi ha a la part fraccionada del camp del segon. La precisió ha de ser qualsevol literal enter de 0 a 9. El valor per defecte s'estableix en 6.
TIMESTAMP WITH LOCAL TIME ZONE és diferent de TIMESTAMP WITH TIME ZONE pel fet que mentre inserim valor a la base de dades, el valor s’estableix a la zona horària de la base de dades i el desplaçament de la zona horària no es manté a la columna de la base de dades. Tanmateix, en obtenir el valor, es torna a la sessió de zona horària local.
INTERVAL CURS AL MES
Aquest tipus de dades s’utilitza per emmagatzemar i calcular intervals d’anys i mesos.
Sintaxi:
INTERVAL YEAR ((precision)) TO MONTH
Aquí, la precisió és el recompte del nombre de dígits del camp d’un any. La precisió ha de ser qualsevol literal enter de 0 a 4. El valor per defecte s'estableix en 2.
INTERVAL CURS AL SEGUND
L'interval de l'any a segon tipus de dades s'utilitza per emmagatzemar i calcular intervals de dies, hores, minuts i segons.
Sintaxi:
INTERVAL DAY ((l_precision)) TO SECOND ((fractional_s_precision))
Aquí, el l_precisió i precisió_s_fraccionals són el recompte del nombre de dígits del camp dies i segons, respectivament.
La precisió ha de ser qualsevol literal enter de 0 a 9. Els valors per defecte s'estableixen en 2 i 6 respectivament.
tutorial de llista doblement enllaçada de c ++
Valors de camp: data i interval
- SEGON: Els valors de l’interval DataTime vàlid són de 00 a 59,9 (m) on m indica els segons fraccionats amb el temps. Els valors de l’interval d’interval vàlid són de 00 a 59,9 (m) on m denota l’interval de segons fraccionats.
- MINUT: Els valors per a un interval de temps vàlid són de 00 a 59. Els valors per a un interval d'interval vàlid són de 0 a 59.
- HORES: Els valors de l'interval de dates i d'hores vàlids són de 00 a 23. Els valors de l'interval d'intervals vàlids són de 0 a 23.
- DIA: Els valors per a un interval de temps vàlid són de 01 a 31 (limitats pels valors de YEAR i MES, segons les regles del calendari local). El valor d'un interval d'interval vàlid és qualsevol nombre enter que no sigui zero.
- MES: Els valors de l'interval de dates vàlids són de 01 a 12. Els valors de l'interval d'interval vàlid són de 0 a 11.
- CURS: Els valors per a un interval de temps vàlid són de -4712 a 9999 sense incloure l'any 0. El valor de l'interval d'interval vàlid és qualsevol nombre enter que no sigui zero.
- TIMEZONE_HOUR: Els valors per a l’interval de data i hora vàlids són de -12 a 14, inclou canvis d’horari d’estiu. Això no és aplicable a l'interval d'intervals vàlid.
- TIMEZONE_MINUTE: Els valors per a un interval de temps vàlid són de 00 a 59. Això no és aplicable a l'interval d'intervals vàlid.
- TIMEZONE_REGION: Els valors de l'interval de dates i hores vàlids no són aplicables per a DATE ni TIMESTAMP. Això no és aplicable per a un interval d'interval vàlid.
- TIMEZONE_ABBR: Els valors de l'interval de dates i hores vàlids no són aplicables per a DATE ni TIMESTAMP. Això no és aplicable a l'interval d'intervals vàlid.
Funcions PL SQL a Datetime
Aquí, m i n contenen els valors del datetime.
Sl núm. | Nom | Propòsits |
---|---|---|
7 | SYSDATE () | Obté la data-hora actual. |
1 | LAST_DAY (m) | S'obté l'últim dia del mes. |
2 | ADD_MONTHS (m, n) | Resumeix mesos i mesos. |
3 | MONTHS_BETWEEN (m, n) | Obté el recompte del nombre de mesos entre m i n. |
4 | NEXT_DAY (m, dia) | Obté la data i hora del dia següent després de m. |
5 | LA PROPERA VEGADA | Obté l'hora / dia del fus horari sol·licitat per l'usuari. |
6 | RODÓ (m (, unitat)) | Rodones m. |
8 | TRUNC (m (, unitat)) | Trunca m. |
Funcions PL SQL en marca de temps
Aquí, m conté el valor de la marca de temps.
Sl núm. | Nom | Propòsits |
---|---|---|
7 | TO_TIMESTAMP_TZ (m, (format)) | Converteix la cadena m a TIMESTAMP AMB TIMEZONE. |
1 | CURRENT_TIMESTAMP () | Obté un TIMESTAMP AMB TIMEZONE que té la sessió actual i el fus horari de la sessió. |
2 | FROM_TZ (m, zona horària) | Converteix m TIMESTAMP i esmenta time_zone a TIMESTAMP AMB TIMEZONE. |
3 | LOCALTIMESTAMP () | Obté un TIMESTAMP que té l'hora local a la zona horària de la sessió. |
4 | SYSTEMTIMESTAMP () | Obté un TIMESTAMP AMB TIMEZONE que té l'actual horari de la base de dades i la zona horària de la base de dades. |
5 | SYS_EXTRACT_UTC (m) | Converteix m TIMESTAMP AMB TIMEZONE en TIMESTAMP que té data i hora en UTC. |
6 | TO_TIMESTAMP (m, (format)) | Converteix la cadena m en TIMESTAMP. |
Implementació de codi amb funcions Datetime i 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; /
Sortida del codi anterior:
Funcions PL SQL en intervals
Sl núm. | Nom | Propòsits |
---|---|---|
1 | NUMTODSINTERVAL (m, interval) | Transforma el número m a INTERVAL DIA A SEGUND. |
2 | NUMTOYMINTERVAL (m, interval) | Transforma el número m a INTERVAL ANY A MES. |
3 | TO_DSINTERVAL (m) | Transforma la cadena m a INTERVAL DIA A SEGONA. |
4 | TO_YMINTERVAL (m) | Transforma la cadena m a INTERVAL ANY A MES. |
Operacions aritmètiques en temps i intervals de dades
PL / SQL us permet crear expressions de data i hora.
La llista d'operadors que es poden aplicar són:
- Si el primer operand és DateTime i el segon operand és un interval i volem aplicar-hi l’operador (+), el valor del resultat és del tipus DateTime.
- Si el primer operand és DateTime i el segon operand és un interval i volem aplicar-hi l’operador (-), el valor del resultat és del tipus DateTime.
- Si el primer operand és interval i el segon operand és DateTime i volem aplicar-hi l’operador (+), el valor del resultat és del tipus DateTime.
- Si el primer operant és DateTime i el segon operand és DateTime, i volem aplicar-hi l’operador (-), el valor del resultat és del tipus d’interval.
- Si el primer operand és interval i el segon operand és un interval i volem aplicar-hi l’operador (+), el valor del resultat és del tipus d’interval.
- Si el primer operand és interval i el segon operand és un interval i volem aplicar-hi l’operador (-), el valor del resultat és del tipus d’interval.
- Si el primer operand és interval i el segon operand és numèric i volem aplicar-hi l’operador (*), el valor del resultat és del tipus d’interval.
- Si el primer operand és numèric i el segon operand és un interval i volem aplicar-hi l’operador (*), el valor del resultat és del tipus d’interval.
- Si el primer operand és interval i el segon operand és numèric i volem aplicar-hi l’operador (/), el valor del resultat és del tipus d’interval.
Implementació de codi amb algunes operacions aritmètiques a Datetime i 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;
La sortida del codi anterior:
Explicació del codi anterior:
- Al codi, ('1600 5: 20: 1') significa 1600 dies, 5 hores, 20 minuts i 1 segon .
- A la primera sortida, el primer operand és DateTime i el segon operand és un interval. En afegir-les, vam obtenir una cita el 24 de desembre amb hora a la matinada.
- A la segona sortida, el primer operand és DateTime i el segon operand és un interval. En restar primer del segon, vam obtenir una cita com a 20-MAR amb temps a PM.
Preguntes i respostes freqüents
P # 1) Quina és la marca de temps actual?
Resposta: La marca de temps actual o CURRENT_TIMESTAMP descriu una marca de temps que depèn de la lectura de l'hora del dia mentre s'executa una sentència SQL al servidor.
Q # 2) Què retorna Sysdate a Oracle?
Resposta: La funció Sysdate () obté la data i l'hora actuals configurades al sistema operatiu on es troba la base de dades. El tipus de dades del valor que retorna és DATE.
P # 3) Quina funció PL / SQL proporcionarà la data i l'hora actuals del sistema?
Resposta: La funció PL / SQL que proporciona la data i hora actuals del sistema és SYSDATE ().
Q # 4) Què és DUAL SQL?
Resposta: DUAL és una taula de base de dades creada per Oracle per defecte juntament amb un diccionari de dades. Conté una fila i una columna. DUAL és propietat de SYS, però pot ser utilitzat per tots els usuaris.
Q # 5) Com es declara una variable de data a PL SQL?
Resposta: Podem declarar una variable de data a PL / SQL amb la sintaxi que es mostra a continuació:
DECLARE stdt DATE := to_date ('06/06/2006', 'DD/MM/YYYY');
P # 6) Quin és el format de data a Oracle?
Resposta: El format de data estàndard a Oracle per a l'entrada i la sortida és 'DD / MON / YY'. Això es configura mitjançant el valor del paràmetre NLS_DATE_FORMAT.
Conclusió
En aquest tutorial de PL SQL Datetime Format, hem analitzat amb detall alguns conceptes bàsics de data i hora de PL / SQL que són essencials per utilitzar-los a la programació.
A continuació, hem tractat els temes següents:
- Data i hora.
- Funcions al voltant de la data, l’hora i l’interval.
- Operacions aritmètiques en Datetime i Interval.
- Valors de camps a Data i Interval.
Lectura recomanada
- Funcions de data i hora a C ++ amb exemples
- Tutorial de Python DateTime amb exemples
- Tutorial de C # DateTime: Treballar amb data i hora a C # amb exemple
- Subprogrames: procediments i funcions PL SQL amb exemples
- Funcions de data de VBScript: funcions de format de data, DataAdd i cDate
- Tutorial PL SQL per a principiants amb exemples | Què és PL / SQL