logo

Datový typ TIME v SQL

  • V SQL existuje mnoho scénářů, kdy potřebujete uložit čas do SQL tabulek vaší databáze.
  • Chcete-li uložit čas v tabulkách SQL, vaším prvním krokem by mělo být vytvoření sloupce v tabulce, který je schopen ukládat čas.
  • Pokud chcete, aby byl čas uložen ve sloupci vaší tabulky, musíte vytvořit sloupec s datovým typem TIME.
  • Datový typ TIME standardně ukládá čas ve formátu 'HH:MM:SS'.
  • Pomocí příkazu SELECT v SQL můžete získat čas ze sloupce tabulek SQL.
  • Spolu s načtením času ve výchozím formátu, ve kterém je uložen, existuje v SQL funkce TIME_FORMAT (), pomocí které lze čas načíst v čitelnějším formátu.
  • Čas můžete načíst ve výchozím formátu, ve kterém je uložen v tabulce, tj. „HH:MM:SS“, nebo máte také možnost načíst konkrétní části času, jako je hodina, minuta a sekundy. výběrem vhodného parametru podle našeho požadavku a jeho předáním funkci TIME_FORMAT(). Čas lze také získat ve 12hodinovém a 24hodinovém formátu.
  • Můžeme také vytisknout čas následovaný AM/PM.

Podívejme se na několik praktických příkladů, abychom tomuto konceptu lépe porozuměli. Pro psaní všech dotazů použijeme databázi MySQL.

Pro vytvoření tabulky v databázi si nejprve vybereme databázi, ve které chceme tabulku vytvořit.

 mysql> USE dbs; 

Poté napíšeme následující dotaz pro vytvoření tabulky:

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

Datový typ TIME v SQL

Ve výše uvedeném dotazu bude sloupec s názvem ItemOrderTime ukládat čas, protože datový typ tohoto sloupce je nastaven jako 'TIME'.

Nyní napíšeme dotaz na vložení záznamů do tabulky items_tbl.

vyberte sql z více tabulek
 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'); 

Datový typ TIME v SQL

Provedeme dotaz SELECT, abychom ověřili, že všechny záznamy byly úspěšně vloženy do tabulky items_tbl.

 mysql> SELECT *FROM items_tbl; 

ID Název položky Položka_množství Cena položky Item_OrderDate Item_OrderTime
1 Mýdlo 5 200 2021-07-08 04:13:52
2 Zubní pasta 2 80 2021-07-10 18:09:01
3 Pero 10 padesáti 2021-07-12 12:00:02
4 Láhev 1 250 2021-07-13 15:07:05
5 Štětec 3 90 2021-07-15 19:18:43
6 Notebooky 10 1000 2021-07-26 05:05:05
7 Kapesník 3 100 2021-07-28 10:08:12
8 Balíček chipsů 5 padesáti 2021-07-30 08:16:58
9 Popisovač 2 30 2021-08-13 02:18:32
10 Nůžky 1 60 2021-08-13 07:17:30

Výše uvedené výsledky dotazu ukazují, že čas je načten ve výchozím formátu, ve kterém je uložen, tj. 'HH:MM:SS'.

Příklad 1:

Napište dotaz pro získání všech hodnot z item_tbl a času objednávky položek ve 12hodinovém formátu spolu s AM/PM, abyste získali časové hodnoty ve srozumitelnějším formátu.

Dotaz:

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

Zde je funkce TIME_FORMAT() aplikována na Item_OrderTime s parametrem '%r' k vytištění času ve 12hodinovém formátu následovaném AM/PM.

Jako výstup získáte následující tabulku:

filmy 123 až
ID Název položky Položka_množství Cena položky Item_OrderDate Item_OrderTime
1 Mýdlo 5 200 2021-07-08 04:13:52 AM
2 Zubní pasta 2 80 2021-07-10 18:09:01
3 Pero 10 padesáti 2021-07-12 12:00:02
4 Láhev 1 250 2021-07-13 15:07:05
5 Štětec 3 90 2021-07-15 19:18:43
6 Notebooky 10 1000 2021-07-26 05:05:05
7 Kapesník 3 100 2021-07-28 10:08:12
8 Balíček chipsů 5 padesáti 2021-07-30 08:16:58
9 Popisovač 2 30 2021-08-13 02:18:32 AM
10 Nůžky 1 60 2021-08-13 07:17:30

Příklad 2:

Napište dotaz pro získání všech hodnot z item_tbl a času objednávky položek ve 12hodinovém formátu spolu s AM/PM, abyste získali časové hodnoty ve srozumitelnějším formátu.

Dotaz:

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

Zde je funkce TIME_FORMAT () aplikována na Item_OrderTime s parametrem '%T %p'. '%T' vytiskne čas ve 24hodinovém formátu a '%p' přidá AM/PM k 24hodinovému formátu.

Jako výstup získáte následující tabulku:

ID Název položky Položka_množství Cena položky Item_OrderDate Item_OrderTime
1 Mýdlo 5 200 2021-07-08 04:13:52 AM
2 Zubní pasta 2 80 2021-07-10 18:09:01
3 Pero 10 padesáti 2021-07-12 12:00:02
4 Láhev 1 250 2021-07-13 15:07:05
5 Štětec 3 90 2021-07-15 19:18:43
6 Notebooky 10 1000 2021-07-26 05:05:05
7 Kapesník 3 100 2021-07-28 10:08:12
8 Balíček chipsů 5 padesáti 2021-07-30 08:16:58
9 Popisovač 2 30 2021-08-13 02:18:32 AM
10 Nůžky 1 60 2021-08-13 07:17:30

Příklad 3:

Napište dotaz pro načtení všech hodnot z item_tbl a pouze hodiny objednávky položek z celého času objednávky ve 24hodinovém formátu.

co je podání adresáře

Dotaz:

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

Zde je funkce TIME_FORMAT () aplikována na Item_OrderTime s parametrem '%H', aby se vytiskla konkrétně hodina, na kterou je položka objednána. Velké H označuje, že hodina bude vytištěna ve 24hodinovém formátu.

Jako výstup získáte následující tabulku:

ID Název položky Položka_množství Cena položky Item_OrderDate Item_OrderHour
1 Mýdlo 5 200 2021-07-08 04
2 Zubní pasta 2 80 2021-07-10 18
3 Pero 10 padesáti 2021-07-12 12
4 Láhev 1 250 2021-07-13 patnáct
5 Štětec 3 90 2021-07-15 19
6 Notebooky 10 1000 2021-07-26 05
7 Kapesník 3 100 2021-07-28 10
8 Balíček chipsů 5 padesáti 2021-07-30 08
9 Popisovač 2 30 2021-08-13 02
10 Nůžky 1 60 2021-08-13 07

Příklad 4:

Napište dotaz pro načtení všech hodnot z item_tbl a pouze hodiny objednávky položek z celého času objednávky ve 12hodinovém formátu.

Dotaz:

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

Zde je funkce TIME_FORMAT () aplikována na Item_OrderTime s parametrem '%h' k vytištění konkrétně hodiny, na kterou je položka objednána. Malé „h“ označuje, že hodina bude vytištěna ve 12hodinovém formátu.

Jako výstup získáte následující tabulku:

stahujte videa z youtube na vlc
ID Název položky Položka_množství Cena položky Item_OrderDate Item_OrderHour
1 Mýdlo 5 200 2021-07-08 04
2 Zubní pasta 2 80 2021-07-10 6
3 Pero 10 padesáti 2021-07-12 12
4 Láhev 1 250 2021-07-13 03
5 Štětec 3 90 2021-07-15 07
6 Notebooky 10 1000 2021-07-26 05
7 Kapesník 3 100 2021-07-28 10
8 Balíček chipsů 5 padesáti 2021-07-30 08
9 Popisovač 2 30 2021-08-13 02
10 Nůžky 1 60 2021-08-13 07

Příklad 5:

Napište dotaz pro získání všech hodnot z item_tbl a pouze minuty, na kterou je zboží objednáno z celého času objednávky.

Dotaz:

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

Zde je funkce TIME_FORMAT () aplikována na Item_OrderTime s parametrem '%i' k vytištění konkrétní minuty, na kterou je položka objednána. Malé 'i' označuje, že bude vytištěna minuta z celého 'Item_OrderTime'.

Jako výstup získáte následující tabulku:

ID Název položky Položka_množství Cena položky Item_OrderDate Item_OrderMinute
1 Mýdlo 5 200 2021-07-08 13
2 Zubní pasta 2 80 2021-07-10 09
3 Pero 10 padesáti 2021-07-12 00
4 Láhev 1 250 2021-07-13 07
5 Štětec 3 90 2021-07-15 18
6 Notebooky 10 1000 2021-07-26 05
7 Kapesník 3 100 2021-07-28 08
8 Balíček chipsů 5 padesáti 2021-07-30 16
9 Popisovač 2 30 2021-08-13 18
10 Nůžky 1 60 2021-08-13 17

Příklad 6:

Napište dotaz pro načtení všech hodnot z item_tbl a pouze sekund, ve kterých je položka objednána z celého času objednávky.

latexové písmo
 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%S') AS Item_OrderSeconds FROM items_tbl; 

Zde je funkce TIME_FORMAT () aplikována na Item_OrderTime s parametrem '%S', aby se vytiskly konkrétně sekundy, ve kterých je položka objednána. Velké 'S' označuje, že bude vytištěna minuta z celého 'Item_OrderTime'.

Jako výstup získáte následující tabulku:

ID Název položky Položka_množství Cena položky Item_OrderDate Item_Order_Seconds
1 Mýdlo 5 200 2021-07-08 52
2 Zubní pasta 2 80 2021-07-10 01
3 Pero 10 padesáti 2021-07-12 02
4 Láhev 1 250 2021-07-13 05
5 Štětec 3 90 2021-07-15 43
6 Notebooky 10 1000 2021-07-26 05
7 Kapesník 3 100 2021-07-28 12
8 Balíček chipsů 5 padesáti 2021-07-30 58
9 Popisovač 2 30 2021-08-13 32
10 Nůžky 1 60 2021-08-13 dvacet

Poznámka: Použití Small 's' ve výše uvedeném dotazu také poskytne stejný výstup.