En aquesta secció, entendrem el funcionament del Tipus de dades d'Interval PostgreSQL, i també ho veiem exemples del Tipus de dades d'interval. I sobretot utilitzat Interval funcions , per exemple, NOW(), TO_CHAR(), EXTRACT(), justificar_dies(), justificar_hores(), justificar_interval(). El Entrada i sortida format per als valors d'interval PostgreSQL.
Què és el tipus de dades d'interval PostgreSQL?
A PostgreSQL, el Interval és un altre tipus de tipus de dades que s'utilitza per emmagatzemar i desplegar el temps anys, mesos, dies, hores, minuts, segons, etc. I el mesos i dies els valors són valors enters , mentre que el camp del segon pot ser el valors de fraccions.
El valor del tipus de dades d'interval PostgreSQL implica Emmagatzematge de 16 bytes mida, que ajuda a emmagatzemar un període amb el rang acceptable de - 178000000 anys a 178000000 anys.
anotacions a Spring Boot
Nota: el nombre de dígits de fracció que es prenen al segon camp es coneix com a precisió p.
Sintaxi del tipus de dades PostgreSQL Interval
La sintaxi del tipus de dades d'Interval PostgreSQL és la següent:
@ interval [ fields ] [ (p) ]
A la sintaxi anterior, tenim els paràmetres següents:
Paràmetre | Descripció |
---|---|
camps | El paràmetre de camp s'utilitza per mostrar l'hora. |
pàg | P s'utilitza per mostrar el valor de precisió. |
@ | Podem ignorar el paràmetre @ ja que és un paràmetre opcional. |
Vegem un exemple d'exemple per entendre millor com podem escriure els valors d'Interval amb paràmetre @ i sense paràmetre @ :
@interval '6 months before'; @interval '2 hours 30 minutes';
O
interval '6 months before'; interval '2 hours 30 minutes';
Nota: podem utilitzar les dues afirmacions anteriors tal com es corresponen. A més, un valor d'interval pot tenir un valor de precisió electiva p amb l'interval permès s'inicia de 0 a 6.
Exemple de tipus de dades PostgreSQL Interval
Vegem un exemple d'exemple per entendre com Tipus de dades d'Interval PostgreSQL obres.
En l'exemple següent, intentarem trobar l'hora de 2 hores 30 minuts abans, al època actual de l'any passat ; utilitzarem les ordres següents:
SELECT now(), now() - INTERVAL '6 months 2 hours 30 minutes' AS '2 hours 30 minutes before last year';
Sortida
Després d'executar l'ordre anterior, obtindrem la sortida següent, que es mostra 2 hores 30 minuts abans de l'any passat :
Hem vist l'exemple principal del tipus de dades d'interval i entenem el funcionament. Ara, veurem el format d'entrada i sortida de valors d'interval.
En primer lloc, entendrem el Valor d'interval PostgreSQL per al format d'entrada :
Format d'entrada d'interval PostgreSQL
A PostgreSQL, tenim el següent sintaxi verbosa, que ens ajuda a escriure els valors d'interval:
quantity unit [quantity unit...] [direction]
Tenim els paràmetres següents, que s'utilitzen en la sintaxi anterior:
Paràmetre | Descripció |
---|---|
quantitat | A quantitat és un nombre, que també accepta signes com + o - |
unitat | El unitat pot ser qualsevol mil·lenni, segle, dècada, any, mes, setmana, dia, hora, minut, segon, mil·lisegon, microsegon, o l'abreviatura pot ser la següent y, m, d, etc. i les formes del plural poden ser el mesos, dies , etc. |
direcció | El direcció paràmetre pot ser ago o la cadena buida. |
Nota: La sintaxi anterior també s'utilitza per al format de sortida d'interval i es coneix com a postgres_verbose.
A l'exemple següent, mostrarem alguns valors d'interval on utilitzem sintaxi verbosa :
INTERVAL '1 year 5 months 5 days'; INTERVAL '1 weeks ago';
El format d'interval ISO 8601
A més de la sintaxi detallada anterior, per escriure els valors d'interval amb l'ajuda de Temps ISO 8601 intervals, PostgreSQL ens ofereix les dues maneres, que són les següents:
El format dels designadors per a la ISO 8601 és el següent:
P quantity unit [ quantity unit ...] [ T [ quantity unit ...]]
En el format anterior, el valor d'interval essencial comença amb lletra P , i la lletra T s'utilitza per definir el unitat d'hora del dia .
La taula següent mostra el Interval ISO 8601 abreviatures de les unitats:
Abreviatura | Descripció |
---|---|
I | Anys |
M | Mesos (per a la part de la data) |
EN | Setmanes |
D | Dies |
H | Hores |
M | Minutes (per a la part de temps) |
S | Segons |
Nota: La M pot ser mesos o minuts segons si es veu abans o després de la lletra T.
Vegem-ne un exemple Designadors ISO 8601 format per a la nostra millor comprensió:
El Format de designadors ISO 8601 es pot escriure per a l'interval de 5 anys 4 mesos 3 dies 2 hores 1 minuts 1 segon :
P5Y4M3DT2H1M1S
I la forma alternativa de ISO 8601 és com es mostra a continuació:
P [ years-months-days ] [ T hours:minutes:seconds ]
I també comença amb el la lletra P i la lletra T, que divideix el hora i data parts del valor de l'interval.
Per exemple, el Forma alternativa ISO 8601 es pot escriure per a 5 anys 4 mesos 3 dies 2 hores 1 minut 1 segon, com es mostra a continuació:
P0005-04-03T02:01:01
Format de sortida d'interval PostgreSQL
El format de sortida de l'interval de PostgreSQL dels valors d'interval es pot establir amb l'ajuda de CONJUNT estil d'interval comanda, com podem veure a l'exemple següent:
SET intervalstyle = 'iso_8601';
PostgreSQL conté quatre formats de sortida diferents, com ara:
Nota: Per formatar els valors d'interval, PostgreSQL utilitza l'estil Postgres de manera predeterminada.
Vegem un exemple de la nostra millor comprensió:
L'ordre següent s'utilitza per mostrar el 5 anys 4 mesos 3 dies 2 hores 1 minut 1 segon en els quatre formats de sortida diferents:
Per al format de sortida ISO_8601
A l'ordre següent, ho farem CONJUNT el estil d'interval com iso_8601 per al valor d'interval esmentat anteriorment:
SET intervalstyle = 'iso_8601'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minute 1 second';
Sortida
Després d'executar l'ordre anterior, obtindrem el resultat següent, que representa el iso_8601 format de sortida d'interval:
Per al format de sortida postgres_verbose
A l'ordre següent, ho farem CONJUNT el estil d'interval com postgres_verbose per al valor de l'interval esmentat anteriorment:
SET intervalstyle = 'postgres_verbose'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Sortida
Tindrem el resultat següent després d'implementar l'ordre anterior, que mostra el postgres_verbose format de sortida d'interval:
git status -s
Per al format de sortida de Postgres
A l'ordre següent, ho farem CONJUNT el estil d'interval com Postgres per al valor d'interval esmentat anteriorment:
SET intervalstyle = 'postgres'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Sortida
Tindrem el resultat següent després d'executar correctament l'ordre anterior, que mostra el Postgres format de sortida d'interval:
Per al format de sortida Sql_standard
A l'ordre següent, ho farem CONJUNT el estil d'interval com sql_standard per al valor d'interval esmentat anteriorment:
SET intervalstyle = 'sql_standard'; SELECT INTERVAL '5 years 4 months 3 days 2 hours 1 minutes 1 second';
Sortida
Tindrem el resultat següent després d'executar correctament l'ordre anterior, que representa el sql_standard format de sortida d'interval:
Modificació de l'interval PostgreSQL a cadena
Podem utilitzar el TO_CHAR() funció per modificar un valor d'interval a una cadena.
La sintaxi per modificar l'interval PostgreSQL a cadena
TO_CHAR(interval,format)
El Funció TO_CHAR(). pren el primera declaració com un valor d'interval i un altre com el format i recupera una cadena, mostrant l'interval en el format concret.
A l'exemple següent, utilitzarem la funció TO_CHAR(), que converteix l'interval PostgreSQL en el valor de cadena:
SELECT TO_CHAR( INTERVAL '15h 15m 15s','HH24:MI:SS' );
Sortida
Després d'executar correctament l'ordre anterior, obtindrem el resultat següent:
Operadors i funcions relacionades amb l'interval de PostgreSQL
Operadors d'interval
Podem utilitzar el següent operador aritmètic +, -, *, etc per obtenir els valors dels intervals.
Vegem l'exemple següent per a una millor comprensió:
A la següent comanda, farem servir el operador aritmètic (+) amb l'ajuda del tipus de dades d'interval PostgreSQL:
SELECT INTERVAL '1h 50m' + INTERVAL '5m';
Sortida
Tindrem el resultat següent en implementar l'ordre anterior, tal com es mostra a continuació:
A la següent comanda, farem servir el operador aritmètic (-) amb l'ajuda del tipus de dades d'interval PostgreSQL:
SELECT INTERVAL '3h 50m' - INTERVAL '30m';
Sortida
En implementar l'ordre anterior, obtindrem el resultat següent:
A la següent comanda, farem servir el operador aritmètic (*) amb l'ajuda del tipus de dades d'interval PostgreSQL:
SELECT 400 * INTERVAL '5 minute';
Sortida
En implementar l'ordre anterior, obtindrem el resultat següent:
Extracció de dades d'un interval PostgreSQL
Podem utilitzar el EXTRAIG () funció per extreure els camps d'un valor d'interval, per exemple, any, mes, data, etc .
La sintaxi per extreure dades d'un interval PostgreSQL
EXTRACT(field FROM interval)
A la sintaxi anterior, podem utilitzar el any, mes, data, hora, minuts , etc., al paràmetre de camp.
El extracte La funció retorna un valor de tipus double-precision si volem extreure de l'interval.
En l'exemple següent, utilitzarem el EXTRAIG () funció per recuperar el valor de doble precisió.
SELECT EXTRACT (MINUTE FROM INTERVAL '2 hours 30 minutes' );
Sortida
clau primària i clau composta en sql
Després d'executar correctament l'ordre anterior, obtindrem la sortida següent, que mostra el part de data per a la doble precisió valors com es mostra a continuació:
Ajust dels valors d'interval PostgreSQL
Tenim dues funcions, justificar_dies i justificar_hores a PostgreSQL, que ens permet modificar el fitxer interval de 24 hores considerar com un dia i l'interval de 30 dies considerar com un mes .
Vegem un exemple per entendre com estem ajustant els valors d'interval PostgreSQL:
A la següent comanda, farem servir el Funció justify_days i justify_hours:
SELECT justify_days(INTERVAL '30 days'), justify_hours(INTERVAL '24 hours');
Sortida
Després d'executar l'ordre anterior, obtindrem el següent resultat, que mostra l'interval de 30 dies com un mes i la interval de 24 hores com un dia :
A més d'això, el justificar_interval La funció regula els valors d'interval amb l'ajuda de justificar_dies i justificar_hores amb modificacions de signes afegits:
A l'exemple següent, utilitzarem la funció justifiy_interval amb l'ordre SELECT:
SELECT justify_interval(interval '6 months -1 hour');
Sortida
Tindrem la següent sortida després d'implementar l'ordre anterior:
Visió general
En el Tipus de dades d'Interval PostgreSQL secció, hem après els següents temes:
- El Dades d'interval PostgreSQL tipus s'utilitza per emmagatzemar i desplegar un període en anys, mesos, dies, hores, minuts, segons.
- Hem utilitzat diferents Funcions d'interval , per exemple, ARA(), TO_CHAR(), per millorar els valors d'interval de la taula particular.
- Els valors de l'interval PostgreSQL tenen tots dos entrada i sortida format d'interval.
- Podem ajustar els valors de l'interval PostgreSQL amb l'ajuda de Funcions justify_days(), justify_hours, justify_interval().
- Podem utilitzar el EXTRAIG () funció per extreure els valors del camp d'interval.