Les funcions de data i hora en SQL són essencials per treballar amb dades temporals. Aquestes funcions permeten manipular i formatar dates i hores, calcular diferències entre dates, i molt més. En aquest tema, explorarem les funcions més comunes de data i hora en SQL.
Continguts
Funcions de data i hora comunes
CURRENT_DATE
i CURRENT_TIME
CURRENT_DATE
i CURRENT_TIME
CURRENT_DATE
: Retorna la data actual.CURRENT_TIME
: Retorna l'hora actual.
SELECT CURRENT_DATE; -- Resultat: 2023-10-05 (exemple) SELECT CURRENT_TIME; -- Resultat: 14:23:45 (exemple)
NOW()
NOW()
NOW()
: Retorna la data i hora actuals.
DATE()
DATE()
DATE(expression)
: Extreu la part de la data d'una expressió de data i hora.
EXTRACT()
EXTRACT()
EXTRACT(part FROM date)
: Extreu una part específica d'una data (com l'any, mes, dia, hora, minut, segon).
SELECT EXTRACT(YEAR FROM '2023-10-05'); -- Resultat: 2023 SELECT EXTRACT(MONTH FROM '2023-10-05'); -- Resultat: 10
DATE_ADD()
i DATE_SUB()
DATE_ADD()
i DATE_SUB()
DATE_ADD(date, INTERVAL value unit)
: Afegeix un interval a una data.DATE_SUB(date, INTERVAL value unit)
: Resta un interval d'una data.
SELECT DATE_ADD('2023-10-05', INTERVAL 10 DAY); -- Resultat: 2023-10-15 SELECT DATE_SUB('2023-10-05', INTERVAL 1 MONTH); -- Resultat: 2023-09-05
DATEDIFF()
DATEDIFF()
DATEDIFF(date1, date2)
: Retorna la diferència en dies entre dues dates.
TIMESTAMPDIFF()
TIMESTAMPDIFF()
TIMESTAMPDIFF(unit, datetime1, datetime2)
: Retorna la diferència entre dos timestamps en la unitat especificada (SECOND, MINUTE, HOUR, DAY, etc.).
Exemples pràctics
Exemple 1: Calculant l'edat d'una persona
Suposem que tenim una taula persones
amb una columna data_naixement
. Volem calcular l'edat de cada persona.
Exemple 2: Filtrant registres per data
Suposem que tenim una taula comandes
amb una columna data_comanda
. Volem obtenir totes les comandes realitzades en els últims 30 dies.
Exercicis pràctics
Exercici 1
Crea una consulta que mostri la data i hora actuals, així com la data d'aquí a 7 dies.
Exercici 2
Suposem que tens una taula events
amb una columna data_event
. Escriu una consulta que mostri tots els esdeveniments que es duran a terme en el mes actual.
Exercici 3
Crea una consulta que calculi la diferència en dies entre dues dates donades: '2023-01-01' i '2023-12-31'.
Solucions dels exercicis
Solució 1
Solució 2
SELECT * FROM events WHERE EXTRACT(MONTH FROM data_event) = EXTRACT(MONTH FROM CURDATE()) AND EXTRACT(YEAR FROM data_event) = EXTRACT(YEAR FROM CURDATE());
Solució 3
Conclusió
En aquest tema, hem explorat diverses funcions de data i hora en SQL que són essencials per treballar amb dades temporals. Hem vist com obtenir la data i hora actuals, extreure parts específiques d'una data, afegir i restar intervals de temps, i calcular diferències entre dates. Aquests coneixements són fonamentals per a qualsevol treball amb bases de dades que impliqui dades temporals. En el següent tema, explorarem les expressions condicionals en SQL.
Curs de SQL
Mòdul 1: Introducció a SQL
Mòdul 2: Consultes bàsiques de SQL
Mòdul 3: Treballar amb múltiples taules
Mòdul 4: Filtratge avançat de dades
- Utilitzar LIKE per a coincidències de patrons
- Operadors IN i BETWEEN
- Valors NULL i IS NULL
- Agrupar dades amb GROUP BY
- Clàusula HAVING
Mòdul 5: Manipulació de dades
Mòdul 6: Funcions avançades de SQL
Mòdul 7: Subconsultes i consultes niades
- Introducció a les subconsultes
- Subconsultes correlacionades
- EXISTS i NOT EXISTS
- Utilitzar subconsultes en les clàusules SELECT, FROM i WHERE
Mòdul 8: Índexs i optimització del rendiment
- Comprendre els índexs
- Crear i gestionar índexs
- Tècniques d'optimització de consultes
- Analitzar el rendiment de les consultes
Mòdul 9: Transaccions i concurrència
- Introducció a les transaccions
- Propietats ACID
- Instruccions de control de transaccions
- Gestionar la concurrència
Mòdul 10: Temes avançats
Mòdul 11: SQL en la pràctica
- Casos d'ús del món real
- Millors pràctiques
- SQL per a l'anàlisi de dades
- SQL en el desenvolupament web