- 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);
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');
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 |