logo

TIME Dátový typ v SQL

  • V SQL existuje veľa scenárov, keď potrebujete uložiť čas do SQL tabuliek vašej databázy.
  • Ak chcete uložiť čas do svojich tabuliek SQL, prvým krokom by malo byť vytvorenie stĺpca v tabuľke, ktorý je schopný ukladať čas.
  • Ak chcete, aby bol čas uložený v stĺpci vašej tabuľky, musíte vytvoriť stĺpec s typom údajov TIME.
  • Typ údajov TIME štandardne ukladá čas vo formáte „HH:MM:SS“.
  • Pomocou príkazu SELECT v SQL môžete získať čas zo stĺpca tabuliek SQL.
  • Spolu s načítaním času v predvolenom formáte, v ktorom je uložený, existuje v SQL funkcia TIME_FORMAT (), pomocou ktorej je možné čas získať v čitateľnejšom formáte.
  • Čas môžete získať v predvolenom formáte, v akom je uložený v tabuľke, t. j. „HH:MM:SS“, alebo máte tiež možnosť získať konkrétne časti času, ako sú hodiny, minúty a sekundy. výberom vhodného parametra podľa našej požiadavky a jeho odovzdaním funkcii TIME_FORMAT(). Čas je možné získať aj v 12-hodinovom a 24-hodinovom formáte.
  • Môžeme tiež vytlačiť čas, po ktorom nasleduje AM/PM.

Pozrime sa na niekoľko praktických príkladov, aby sme tento koncept lepšie pochopili. Na písanie všetkých dopytov použijeme databázu MySQL.

Pre vytvorenie tabuľky v databáze si najskôr vyberieme databázu, v ktorej chceme tabuľku vytvoriť.

 mysql> USE dbs; 

Potom napíšeme nasledujúci dotaz na vytvorenie tabuľky:

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

TIME Dátový typ v SQL

Vo vyššie uvedenom dotaze bude stĺpec s názvom ItemOrderTime uchovávať čas, odkedy je dátový typ tohto stĺpca nastavený ako 'TIME'.

Teraz napíšeme dotaz na vloženie záznamov do tabuľky items_tbl.

vyberte sql z viacerých tabuliek
 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'); 

TIME Dátový typ v SQL

Spustíme dotaz SELECT, aby sme overili, či sú všetky záznamy úspešne vložené do tabuľky items_tbl.

 mysql> SELECT *FROM items_tbl; 

ID Názov položky Množstvo_položky Item_Price Item_OrderDate Item_OrderTime
1 Mydlo 5 200 2021-07-08 04:13:52
2 Zubná pasta 2 80 2021-07-10 18:09:01
3 Pero 10 päťdesiat 2021-07-12 12:00:02
4 Fľaša 1 250 2021-07-13 15:07:05
5 Kefa 3 90 2021-07-15 19:18:43
6 Notebooky 10 1000 2021-07-26 05:05:05
7 Vreckovka 3 100 28.07.2021 10:08:12
8 Balíček čipov 5 päťdesiat 2021-07-30 08:16:58
9 Marker 2 30 2021-08-13 02:18:32
10 Nožnice 1 60 2021-08-13 07:17:30

Vyššie uvedené výsledky dotazu ukazujú, že čas sa získava v predvolenom formáte, v ktorom je uložený, t. j. 'HH:MM:SS'.

Príklad 1:

Napíšte dotaz na získanie všetkých hodnôt z item_tbl a času objednávky položiek v 12-hodinovom formáte spolu s AM/PM, aby ste získali časové hodnoty v čitateľnejšom formáte.

Dopyt:

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

Tu je funkcia TIME_FORMAT() aplikovaná na Item_OrderTime s parametrom '%r' na tlač času v 12-hodinovom formáte, po ktorom nasleduje AM/PM.

Ako výstup dostanete nasledujúcu tabuľku:

pár c++
ID Názov položky Množstvo_položky Item_Price Item_OrderDate Item_OrderTime
1 Mydlo 5 200 2021-07-08 04:13:52
2 Zubná pasta 2 80 2021-07-10 18:09:01
3 Pero 10 päťdesiat 2021-07-12 12:00:02
4 Fľaša 1 250 2021-07-13 15:07:05
5 Kefa 3 90 2021-07-15 19:18:43
6 Notebooky 10 1000 2021-07-26 05:05:05
7 Vreckovka 3 100 28.07.2021 10:08:12
8 Balíček čipov 5 päťdesiat 2021-07-30 08:16:58
9 Marker 2 30 2021-08-13 02:18:32
10 Nožnice 1 60 2021-08-13 07:17:30

Príklad 2:

Napíšte dotaz na získanie všetkých hodnôt z item_tbl a času objednávky položiek v 12-hodinovom formáte spolu s AM/PM, aby ste získali časové hodnoty v čitateľnejšom formáte.

Dopyt:

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

Tu je funkcia TIME_FORMAT () aplikovaná na Item_OrderTime s parametrom '%T %p'. '%T' vytlačí čas v 24-hodinovom formáte a '%p' pridá AM/PM k 24-hodinovému formátu.

Ako výstup dostanete nasledujúcu tabuľku:

ID Názov položky Množstvo_položky Item_Price Item_OrderDate Item_OrderTime
1 Mydlo 5 200 2021-07-08 04:13:52
2 Zubná pasta 2 80 2021-07-10 18:09:01
3 Pero 10 päťdesiat 2021-07-12 12:00:02
4 Fľaša 1 250 2021-07-13 15:07:05
5 Kefa 3 90 2021-07-15 19:18:43
6 Notebooky 10 1000 2021-07-26 05:05:05
7 Vreckovka 3 100 28.07.2021 10:08:12
8 Balíček čipov 5 päťdesiat 2021-07-30 08:16:58
9 Marker 2 30 2021-08-13 02:18:32
10 Nožnice 1 60 2021-08-13 07:17:30

Príklad 3:

Napíšte dotaz na získanie všetkých hodnôt z item_tbl a iba hodiny objednávky položiek z celého času objednávky v 24-hodinovom formáte.

ako previesť reťazec na celé číslo java

Dopyt:

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

Tu je funkcia TIME_FORMAT () aplikovaná na Item_OrderTime s parametrom '%H' na vytlačenie konkrétne hodiny, na ktorú je položka objednaná. Veľké H označuje, že hodina bude vytlačená v 24-hodinovom formáte.

Ako výstup dostanete nasledujúcu tabuľku:

ID Názov položky Množstvo_položky Item_Price Item_OrderDate Item_OrderHour
1 Mydlo 5 200 2021-07-08 04
2 Zubná pasta 2 80 2021-07-10 18
3 Pero 10 päťdesiat 2021-07-12 12
4 Fľaša 1 250 2021-07-13 pätnásť
5 Kefa 3 90 2021-07-15 19
6 Notebooky 10 1000 2021-07-26 05
7 Vreckovka 3 100 28.07.2021 10
8 Balíček čipov 5 päťdesiat 2021-07-30 08
9 Marker 2 30 2021-08-13 02
10 Nožnice 1 60 2021-08-13 07

Príklad 4:

Napíšte dotaz na získanie všetkých hodnôt z item_tbl a iba hodiny objednávky položiek z celého času objednávky v 12-hodinovom formáte.

Dopyt:

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

Tu je funkcia TIME_FORMAT () aplikovaná na Item_OrderTime s parametrom '%h' na vytlačenie konkrétne hodiny, na ktorú je položka objednaná. Malé „h“ označuje, že hodina sa vytlačí v 12-hodinovom formáte.

Ako výstup dostanete nasledujúcu tabuľku:

večera vs čas na večeru
ID Názov položky Množstvo_položky Item_Price Item_OrderDate Item_OrderHour
1 Mydlo 5 200 2021-07-08 04
2 Zubná pasta 2 80 2021-07-10 6
3 Pero 10 päťdesiat 2021-07-12 12
4 Fľaša 1 250 2021-07-13 03
5 Kefa 3 90 2021-07-15 07
6 Notebooky 10 1000 2021-07-26 05
7 Vreckovka 3 100 28.07.2021 10
8 Balíček čipov 5 päťdesiat 2021-07-30 08
9 Marker 2 30 2021-08-13 02
10 Nožnice 1 60 2021-08-13 07

Príklad 5:

Napíšte dotaz na získanie všetkých hodnôt z item_tbl a iba minúty, kedy je položka objednaná z celého času objednávky.

Dopyt:

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

Tu je funkcia TIME_FORMAT () aplikovaná na Item_OrderTime s parametrom '%i' na vytlačenie konkrétnej minúty, kedy je položka objednaná. Malé 'i' označuje, že sa vytlačí minúta z celého 'Item_OrderTime'.

Ako výstup dostanete nasledujúcu tabuľku:

ID Názov položky Množstvo_položky Item_Price Item_OrderDate Item_OrderMinute
1 Mydlo 5 200 2021-07-08 13
2 Zubná pasta 2 80 2021-07-10 09
3 Pero 10 päťdesiat 2021-07-12 00
4 Fľaša 1 250 2021-07-13 07
5 Kefa 3 90 2021-07-15 18
6 Notebooky 10 1000 2021-07-26 05
7 Vreckovka 3 100 28.07.2021 08
8 Balíček čipov 5 päťdesiat 2021-07-30 16
9 Marker 2 30 2021-08-13 18
10 Nožnice 1 60 2021-08-13 17

Príklad 6:

Napíšte dotaz na získanie všetkých hodnôt z item_tbl a iba sekúnd, v ktorých je položka objednaná z celého času objednávky.

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

Tu je funkcia TIME_FORMAT () použitá na Item_OrderTime s parametrom '%S', aby sa vytlačili konkrétne sekundy, v ktorých je položka objednaná. Veľké 'S' označuje, že sa vytlačí minúta z celého 'Item_OrderTime'.

Ako výstup dostanete nasledujúcu tabuľku:

ID Názov položky Množstvo_položky Item_Price Item_OrderDate Item_Order_Seconds
1 Mydlo 5 200 2021-07-08 52
2 Zubná pasta 2 80 2021-07-10 01
3 Pero 10 päťdesiat 2021-07-12 02
4 Fľaša 1 250 2021-07-13 05
5 Kefa 3 90 2021-07-15 43
6 Notebooky 10 1000 2021-07-26 05
7 Vreckovka 3 100 28.07.2021 12
8 Balíček čipov 5 päťdesiat 2021-07-30 58
9 Marker 2 30 2021-08-13 32
10 Nožnice 1 60 2021-08-13 dvadsať

Poznámka: Použitie malých „s“ vo vyššie uvedenom dotaze tiež poskytne rovnaký výstup.