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