logo

Tipus de dades TIME en SQL

  • Hi ha molts escenaris en SQL quan necessiteu emmagatzemar el temps a les taules SQL de la vostra base de dades.
  • Per emmagatzemar l'hora a les taules SQL, el primer pas hauria de ser crear una columna a la taula que sigui capaç d'emmagatzemar l'hora.
  • Si voleu que l'hora s'emmagatzemi a la columna de la vostra taula, heu de crear una columna amb el tipus de dades TIME.
  • El tipus de dades TIME per defecte emmagatzema l'hora en format 'HH:MM:SS'.
  • Mitjançant la instrucció SELECT a SQL, podeu recuperar l'hora de la columna de les taules SQL.
  • A més de recuperar l'hora en el format predeterminat en què s'emmagatzema, hi ha una funció TIME_FORMAT () en SQL amb la qual es pot recuperar l'hora en un format més llegible.
  • Podeu recuperar l'hora en el format predeterminat en què s'emmagatzema a la taula, és a dir, 'HH:MM:SS', o també teniu l'opció de recuperar les parts específiques del temps com ara l'hora, el minut i els segons. escollint un paràmetre adequat segons el nostre requisit i passant-lo a la funció TIME_FORMAT(). L'hora també es pot recuperar en un format de 12 hores i un de 24 hores.
  • També podem imprimir l'hora seguida de AM/PM.

Vegem alguns exemples pràctics per entendre aquest concepte amb més claredat. Utilitzarem la base de dades MySQL per escriure totes les consultes.

Per crear una taula a la base de dades, primer seleccionarem una base de dades en la qual volem crear una taula.

 mysql> USE dbs; 

A continuació, escriurem la següent consulta per crear una taula:

 mysql> CREATE TABLE items_tbl(ID INT, Item_Name VARCHAR(20), Item_Quantity INT, Item_Price INT, Item_OrderDate DATE, Item_OrderTime TIME); 

Tipus de dades TIME en SQL

A la consulta anterior, la columna anomenada ItemOrderTime emmagatzemarà el temps des que el tipus de dades d'aquesta columna s'ha definit com a 'TIME'.

Ara, escriurem una consulta per inserir registres a la taula items_tbl.

mylivecriclet
 mysql> INSERT INTO items_tbl(ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, Item_OrderTime) VALUES(1, 'Soap', 5, 200, '2021-07-08', '04:13:52'), (2, 'Toothpaste', 2, 80, '2021-07-10', '18:09:01'), (3, 'Pen', 10, 50, '2021-07-12', '12:00:02'), (4, 'Bottle', 1, 250, '2021-07-13', '15:07:05'), (5, 'Brush', 3, 90, '2021-07-15', '19:18:43'), (6, 'Notebooks', 10, 1000, '2021-07-26', '05:05:05'), (7, 'Handkerchief', 3, 100, '2021-07-28', '10:08:12'), (8, 'Chips Packet', 5, 50, '2021-07-30', '08:16:58'), (9, 'Marker', 2, 30, '2021-08-13', '02:18:32'), (10, 'Scissors', 1, 60, '2021-08-13', '07:17:30'); 

Tipus de dades TIME en SQL

Executarem la consulta SELECT per verificar que tots els registres s'han inserit correctament a la taula items_tbl.

 mysql> SELECT *FROM items_tbl; 

ID Nom de l'ítem Item_Quantity Article_Preu Item_OrderDate Item_OrderTime
1 Sabó 5 200 2021-07-08 04:13:52
2 Pasta de dents 2 80 2021-07-10 18:09:01
3 Bolígraf 10 50 2021-07-12 12:00:02
4 Ampolla 1 250 2021-07-13 15:07:05
5 Raspall 3 90 2021-07-15 19:18:43
6 Quaderns 10 1000 2021-07-26 05:05:05
7 Mocador 3 100 2021-07-28 10:08:12
8 Paquet de xips 5 50 2021-07-30 08:16:58
9 Marcador 2 30 2021-08-13 02:18:32
10 Tisores 1 60 2021-08-13 07:17:30

Els resultats de la consulta anteriors mostren que l'hora es recupera en el format predeterminat en què s'emmagatzema, és a dir, 'HH:MM:SS'.

Exemple 1:

Escriviu una consulta per recuperar tots els valors de l'element_tbl i l'hora de la comanda dels elements en un format de 12 hores juntament amb AM/PM per recuperar els valors de l'hora en un format més llegible.

Consulta:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%r') AS Formatted_Time FROM items_tbl; 

Aquí, la funció TIME_FORMAT() s'aplica a Item_OrderTime amb el paràmetre '%r' per imprimir l'hora en format de 12 hores seguit de AM/PM.

Obtindreu la següent taula com a sortida:

actor chiranjeevi
ID Nom de l'ítem Item_Quantity Article_Preu Item_OrderDate Item_OrderTime
1 Sabó 5 200 2021-07-08 04:13:52 AM
2 Pasta de dents 2 80 2021-07-10 06:09:01 PM
3 Bolígraf 10 50 2021-07-12 12:00:02 PM
4 Ampolla 1 250 2021-07-13 03:07:05 PM
5 Raspall 3 90 2021-07-15 07:18:43 PM
6 Quaderns 10 1000 2021-07-26 05:05:05 AM
7 Mocador 3 100 2021-07-28 10:08:12 AM
8 Paquet de xips 5 50 2021-07-30 08:16:58 AM
9 Marcador 2 30 2021-08-13 02:18:32 AM
10 Tisores 1 60 2021-08-13 07:17:30 AM

Exemple 2:

Escriviu una consulta per recuperar tots els valors de l'element_tbl i l'hora de la comanda dels elements en un format de 12 hores juntament amb AM/PM per recuperar els valors de l'hora en un format més llegible.

Consulta:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%T %p') AS Formatted_Time FROM items_tbl; 

Aquí, la funció TIME_FORMAT () s'aplica a Item_OrderTime amb el paràmetre '%T %p'. '%T' imprimirà l'hora en format de 24 hores, i '%p' afegirà AM/PM a l'hora amb format de 24 hores.

Obtindreu la següent taula com a sortida:

ID Nom de l'ítem Item_Quantity Article_Preu Item_OrderDate Item_OrderTime
1 Sabó 5 200 2021-07-08 04:13:52 AM
2 Pasta de dents 2 80 2021-07-10 18:09:01 PM
3 Bolígraf 10 50 2021-07-12 12:00:02 PM
4 Ampolla 1 250 2021-07-13 15:07:05 PM
5 Raspall 3 90 2021-07-15 19:18:43 PM
6 Quaderns 10 1000 2021-07-26 05:05:05 AM
7 Mocador 3 100 2021-07-28 10:08:12 AM
8 Paquet de xips 5 50 2021-07-30 08:16:58 AM
9 Marcador 2 30 2021-08-13 02:18:32 AM
10 Tisores 1 60 2021-08-13 07:17:30 AM

Exemple 3:

Escriviu una consulta per recuperar tots els valors de item_tbl i només l'hora de la comanda dels articles de tot el temps de la comanda en un format de 24 hores.

paràmetre verilog

Consulta:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%H') AS Item_OrderHour FROM items_tbl; 

Aquí, la funció TIME_FORMAT () s'aplica a Item_OrderTime amb el paràmetre '%H' per imprimir específicament l'hora en què es fa la comanda. La H majúscula indica que l'hora s'imprimirà en format de 24 hores.

Obtindreu la següent taula com a sortida:

ID Nom de l'ítem Item_Quantity Article_Preu Item_OrderDate Item_OrderHour
1 Sabó 5 200 2021-07-08 04
2 Pasta de dents 2 80 2021-07-10 18
3 Bolígraf 10 50 2021-07-12 12
4 Ampolla 1 250 2021-07-13 15
5 Raspall 3 90 2021-07-15 19
6 Quaderns 10 1000 2021-07-26 05
7 Mocador 3 100 2021-07-28 10
8 Paquet de xips 5 50 2021-07-30 08
9 Marcador 2 30 2021-08-13 02
10 Tisores 1 60 2021-08-13 07

Exemple 4:

Escriviu una consulta per recuperar tots els valors de item_tbl i només l'hora de la comanda dels articles de tot el temps de la comanda en un format de 12 hores.

Consulta:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%h') AS Item_OrderHour FROM items_tbl; 

Aquí, la funció TIME_FORMAT () s'aplica a Item_OrderTime amb el paràmetre '%h' per imprimir específicament l'hora en què es fa la comanda. La 'h' petita indica que l'hora s'imprimirà en un format de 12 hores.

Obtindreu la següent taula com a sortida:

caràcter a int en java
ID Nom de l'ítem Item_Quantity Article_Preu Item_OrderDate Item_OrderHour
1 Sabó 5 200 2021-07-08 04
2 Pasta de dents 2 80 2021-07-10 6
3 Bolígraf 10 50 2021-07-12 12
4 Ampolla 1 250 2021-07-13 03
5 Raspall 3 90 2021-07-15 07
6 Quaderns 10 1000 2021-07-26 05
7 Mocador 3 100 2021-07-28 10
8 Paquet de xips 5 50 2021-07-30 08
9 Marcador 2 30 2021-08-13 02
10 Tisores 1 60 2021-08-13 07

Exemple 5:

Escriviu una consulta per recuperar tots els valors de l'element_tbl i només el minut en què es demana un article de tot el temps de comanda.

Consulta:

 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%i') AS Item_OrderMinute FROM items_tbl; 

Aquí, la funció TIME_FORMAT () s'aplica a Item_OrderTime amb el paràmetre '%i' per imprimir específicament el minut en què es fa la comanda. La 'i' petita indica que s'imprimirà el minut de l''Item_OrderTime' complet.

Obtindreu la següent taula com a sortida:

ID Nom de l'ítem Item_Quantity Article_Preu Item_OrderDate Item_OrderMinute
1 Sabó 5 200 2021-07-08 13
2 Pasta de dents 2 80 2021-07-10 09
3 Bolígraf 10 50 2021-07-12 00
4 Ampolla 1 250 2021-07-13 07
5 Raspall 3 90 2021-07-15 18
6 Quaderns 10 1000 2021-07-26 05
7 Mocador 3 100 2021-07-28 08
8 Paquet de xips 5 50 2021-07-30 16
9 Marcador 2 30 2021-08-13 18
10 Tisores 1 60 2021-08-13 17

Exemple 6:

Escriu una consulta per recuperar tots els valors de l'element_tbl i només els segons en què es demana un article de tot el temps de comanda.

regexp_like a mysql
 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%S') AS Item_OrderSeconds FROM items_tbl; 

Aquí, la funció TIME_FORMAT () s'aplica a Item_OrderTime amb el paràmetre '%S' per imprimir específicament els segons en què es demana l'article. La 'S' majúscula indica que s'imprimirà el minut de l''Item_OrderTime' complet.

Obtindreu la següent taula com a sortida:

ID Nom de l'ítem Item_Quantity Article_Preu Item_OrderDate Element_Ordre_Segons
1 Sabó 5 200 2021-07-08 52
2 Pasta de dents 2 80 2021-07-10 01
3 Bolígraf 10 50 2021-07-12 02
4 Ampolla 1 250 2021-07-13 05
5 Raspall 3 90 2021-07-15 43
6 Quaderns 10 1000 2021-07-26 05
7 Mocador 3 100 2021-07-28 12
8 Paquet de xips 5 50 2021-07-30 58
9 Marcador 2 30 2021-08-13 32
10 Tisores 1 60 2021-08-13 20

Nota: L'ús de 's' petites a la consulta anterior també donarà la mateixa sortida.