- W języku SQL istnieje wiele scenariuszy, w których konieczne jest przechowywanie czasu w tabelach SQL w bazie danych.
- Aby przechowywać czas w tabelach SQL, pierwszym krokiem powinno być utworzenie w tabeli kolumny, która będzie w stanie przechowywać czas.
- Jeśli chcesz, aby czas był przechowywany w kolumnie Twojej tabeli, musisz utworzyć kolumnę z danymi typu TIME.
- Typ danych TIME domyślnie przechowuje czas w formacie „GG:MM:SS”.
- Używając instrukcji SELECT w SQL, możesz pobrać czas z kolumny tabel SQL.
- Oprócz pobrania czasu w domyślnym formacie, w jakim jest przechowywany, w języku SQL dostępna jest funkcja TIME_FORMAT (), za pomocą której można pobrać czas w bardziej czytelnym formacie.
- Możesz pobrać godzinę w domyślnym formacie, w jakim jest przechowywana w tabeli, tj. „GG:MM:SS”, lub masz również możliwość pobrania określonych części czasu, takich jak godzina, minuty i sekundy wybierając odpowiedni parametr zgodnie z naszymi wymaganiami i przekazując go do funkcji TIME_FORMAT(). Czas można również pobrać w formacie 12-godzinnym i 24-godzinnym.
- Możemy również wydrukować godzinę, po której następuje AM/PM.
Zobaczmy kilka praktycznych przykładów, aby lepiej zrozumieć tę koncepcję. Do zapisywania wszystkich zapytań będziemy używać bazy danych MySQL.
Aby utworzyć tabelę w bazie danych, najpierw wybierzemy bazę danych, w której chcemy utworzyć tabelę.
mysql> USE dbs;
Następnie napiszemy następujące zapytanie, aby utworzyć tabelę:
mysql> CREATE TABLE items_tbl(ID INT, Item_Name VARCHAR(20), Item_Quantity INT, Item_Price INT, Item_OrderDate DATE, Item_OrderTime TIME);
W powyższym zapytaniu kolumna o nazwie ItemOrderTime będzie przechowywać czas, ponieważ typ danych tej kolumny jest ustawiony na „TIME”.
Teraz napiszemy zapytanie wstawiające rekordy do tabeli items_tbl.
jednorodna mieszanina
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');
Wykonamy zapytanie SELECT, aby sprawdzić, czy wszystkie rekordy zostały pomyślnie wstawione do tabeli items_tbl.
mysql> SELECT *FROM items_tbl;
ID | Nazwa_przedmiotu | Ilość przedmiotów | Cena przedmiotu | Pozycja_ZamówienieData | Czas_zamówienia przedmiotu |
---|---|---|---|---|---|
1 | Mydło | 5 | 200 | 2021-07-08 | 04:13:52 |
2 | Pasta do zębów | 2 | 80 | 2021-07-10 | 18:09:01 |
3 | Długopis | 10 | pięćdziesiąt | 2021-07-12 | 12:00:02 |
4 | Butelka | 1 | 250 | 2021-07-13 | 15:07:05 |
5 | Szczotka | 3 | 90 | 2021-07-15 | 19:18:43 |
6 | Notatniki | 10 | 1000 | 26.07.2021 | 05:05:05 |
7 | Chusteczka | 3 | 100 | 28.07.2021 | 10:08:12 |
8 | Pakiet chipsów | 5 | pięćdziesiąt | 2021-07-30 | 08:16:58 |
9 | Znacznik | 2 | 30 | 2021-08-13 | 02:18:32 |
10 | Nożyce | 1 | 60 | 2021-08-13 | 07:17:30 |
Z powyższych wyników zapytania wynika, że czas jest pobierany w domyślnym formacie, w jakim jest przechowywany, czyli „GG:MM:SS”.
Przykład 1:
Napisz zapytanie, aby pobrać wszystkie wartości z tabeli item_tbl i czas zamówienia artykułów w formacie 12-godzinnym wraz z godziną AM/PM, aby pobrać wartości czasu w bardziej czytelnym formacie.
Zapytanie:
mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%r') AS Formatted_Time FROM items_tbl;
W tym przypadku zastosowano funkcję TIME_FORMAT() dla Item_OrderTime z parametrem „%r”, aby wydrukować czas w formacie 12-godzinnym, po którym następuje AM/PM.
Jako wynik otrzymasz następującą tabelę:
ID | Nazwa_przedmiotu | Ilość przedmiotów | Cena przedmiotu | Pozycja_ZamówienieData | Czas_zamówienia przedmiotu |
---|---|---|---|---|---|
1 | Mydło | 5 | 200 | 2021-07-08 | 04:13:52 |
2 | Pasta do zębów | 2 | 80 | 2021-07-10 | 18:09:01 |
3 | Długopis | 10 | pięćdziesiąt | 2021-07-12 | 12:00:02 |
4 | Butelka | 1 | 250 | 2021-07-13 | 15:07:05 |
5 | Szczotka | 3 | 90 | 2021-07-15 | 19:18:43 |
6 | Notatniki | 10 | 1000 | 26.07.2021 | 05:05:05 |
7 | Chusteczka | 3 | 100 | 28.07.2021 | 10:08:12 |
8 | Pakiet chipsów | 5 | pięćdziesiąt | 2021-07-30 | 08:16:58 |
9 | Znacznik | 2 | 30 | 2021-08-13 | 02:18:32 |
10 | Nożyce | 1 | 60 | 2021-08-13 | 07:17:30 |
Przykład 2:
ile milionów jest w miliardzie
Napisz zapytanie, aby pobrać wszystkie wartości z tabeli item_tbl i czas zamówienia artykułów w formacie 12-godzinnym wraz z godziną AM/PM, aby pobrać wartości czasu w bardziej czytelnym formacie.
Zapytanie:
Java 8
mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%T %p') AS Formatted_Time FROM items_tbl;
Tutaj funkcja TIME_FORMAT () jest stosowana w Item_OrderTime z parametrem „%T %p”. „%T” wydrukuje czas w formacie 24-godzinnym, a „%p” doda AM/PM do czasu w formacie 24-godzinnym.
Jako wynik otrzymasz następującą tabelę:
ID | Nazwa_przedmiotu | Ilość przedmiotów | Cena przedmiotu | Pozycja_ZamówienieData | Czas_zamówienia przedmiotu |
---|---|---|---|---|---|
1 | Mydło | 5 | 200 | 2021-07-08 | 04:13:52 |
2 | Pasta do zębów | 2 | 80 | 2021-07-10 | 18:09:01 |
3 | Długopis | 10 | pięćdziesiąt | 2021-07-12 | 12:00:02 |
4 | Butelka | 1 | 250 | 2021-07-13 | 15:07:05 |
5 | Szczotka | 3 | 90 | 2021-07-15 | 19:18:43 |
6 | Notatniki | 10 | 1000 | 26.07.2021 | 05:05:05 |
7 | Chusteczka | 3 | 100 | 28.07.2021 | 10:08:12 |
8 | Pakiet chipsów | 5 | pięćdziesiąt | 2021-07-30 | 08:16:58 |
9 | Znacznik | 2 | 30 | 2021-08-13 | 02:18:32 |
10 | Nożyce | 1 | 60 | 2021-08-13 | 07:17:30 |
Przykład 3:
Napisz zapytanie, które pobierze wszystkie wartości z tabeli item_tbl i tylko godzinę zamówienia artykułów z całego czasu zamówienia w formacie 24-godzinnym.
Zapytanie:
mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%H') AS Item_OrderHour FROM items_tbl;
W tym przypadku funkcja TIME_FORMAT () jest stosowana w Item_OrderTime z parametrem „%H”, aby wydrukować konkretną godzinę, w której artykuł został zamówiony. Wielka litera H oznacza, że godzina zostanie wydrukowana w formacie 24-godzinnym.
Jako wynik otrzymasz następującą tabelę:
ID | Nazwa_przedmiotu | Ilość przedmiotów | Cena przedmiotu | Pozycja_ZamówienieData | Godzina zamówienia_przedmiotu |
---|---|---|---|---|---|
1 | Mydło | 5 | 200 | 2021-07-08 | 04 |
2 | Pasta do zębów | 2 | 80 | 2021-07-10 | 18 |
3 | Długopis | 10 | pięćdziesiąt | 2021-07-12 | 12 |
4 | Butelka | 1 | 250 | 2021-07-13 | piętnaście |
5 | Szczotka | 3 | 90 | 2021-07-15 | 19 |
6 | Notatniki | 10 | 1000 | 26.07.2021 | 05 |
7 | Chusteczka | 3 | 100 | 28.07.2021 | 10 |
8 | Pakiet chipsów | 5 | pięćdziesiąt | 2021-07-30 | 08 |
9 | Znacznik | 2 | 30 | 2021-08-13 | 02 |
10 | Nożyce | 1 | 60 | 2021-08-13 | 07 |
Przykład 4:
Napisz zapytanie, które pobierze wszystkie wartości z tabeli item_tbl i tylko godzinę zamówienia artykułów z całego czasu zamówienia w formacie 12-godzinnym.
Zapytanie:
mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%h') AS Item_OrderHour FROM items_tbl;
W tym przypadku funkcja TIME_FORMAT () jest stosowana do Item_OrderTime z parametrem „%h”, aby wydrukować konkretną godzinę, w której artykuł został zamówiony. Małe „h” oznacza, że godzina zostanie wydrukowana w formacie 12-godzinnym.
Jako wynik otrzymasz następującą tabelę:
porównanie lwa i tygrysa
ID | Nazwa_przedmiotu | Ilość przedmiotów | Cena przedmiotu | Pozycja_ZamówienieData | Godzina zamówienia_przedmiotu |
---|---|---|---|---|---|
1 | Mydło | 5 | 200 | 2021-07-08 | 04 |
2 | Pasta do zębów | 2 | 80 | 2021-07-10 | 6 |
3 | Długopis | 10 | pięćdziesiąt | 2021-07-12 | 12 |
4 | Butelka | 1 | 250 | 2021-07-13 | 03 |
5 | Szczotka | 3 | 90 | 2021-07-15 | 07 |
6 | Notatniki | 10 | 1000 | 26.07.2021 | 05 |
7 | Chusteczka | 3 | 100 | 28.07.2021 | 10 |
8 | Pakiet chipsów | 5 | pięćdziesiąt | 2021-07-30 | 08 |
9 | Znacznik | 2 | 30 | 2021-08-13 | 02 |
10 | Nożyce | 1 | 60 | 2021-08-13 | 07 |
Przykład 5:
Napisz zapytanie, które pobierze wszystkie wartości z tabeli item_tbl i tylko minutę zamówienia artykułu z całego czasu zamówienia.
Zapytanie:
wydruk javascript
mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%i') AS Item_OrderMinute FROM items_tbl;
W tym przypadku funkcja TIME_FORMAT () jest stosowana do Item_OrderTime z parametrem „%i”, aby wydrukować konkretną minutę, w której artykuł został zamówiony. Małe „i” oznacza, że wydrukowana zostanie minuta z całego „Item_OrderTime”.
Jako wynik otrzymasz następującą tabelę:
ID | Nazwa_przedmiotu | Ilość przedmiotów | Cena przedmiotu | Pozycja_ZamówienieData | Pozycja_ZamówienieMinuta |
---|---|---|---|---|---|
1 | Mydło | 5 | 200 | 2021-07-08 | 13 |
2 | Pasta do zębów | 2 | 80 | 2021-07-10 | 09 |
3 | Długopis | 10 | pięćdziesiąt | 2021-07-12 | 00 |
4 | Butelka | 1 | 250 | 2021-07-13 | 07 |
5 | Szczotka | 3 | 90 | 2021-07-15 | 18 |
6 | Notatniki | 10 | 1000 | 26.07.2021 | 05 |
7 | Chusteczka | 3 | 100 | 28.07.2021 | 08 |
8 | Pakiet chipsów | 5 | pięćdziesiąt | 2021-07-30 | 16 |
9 | Znacznik | 2 | 30 | 2021-08-13 | 18 |
10 | Nożyce | 1 | 60 | 2021-08-13 | 17 |
Przykład 6:
Napisz zapytanie, które pobierze wszystkie wartości z tabeli item_tbl i tylko sekundy, w których dany artykuł został zamówiony, z całego czasu zamówienia.
mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%S') AS Item_OrderSeconds FROM items_tbl;
W tym przypadku funkcja TIME_FORMAT () jest stosowana do Item_OrderTime z parametrem „%S”, aby wydrukować konkretnie sekundy, w których artykuł został zamówiony. Duże „S” oznacza, że wydrukowana zostanie minuta z całego „Item_OrderTime”.
Jako wynik otrzymasz następującą tabelę:
ID | Nazwa_przedmiotu | Ilość przedmiotów | Cena przedmiotu | Pozycja_ZamówienieData | Pozycja_Zamówienie_Sekundy |
---|---|---|---|---|---|
1 | Mydło | 5 | 200 | 2021-07-08 | 52 |
2 | Pasta do zębów | 2 | 80 | 2021-07-10 | 01 |
3 | Długopis | 10 | pięćdziesiąt | 2021-07-12 | 02 |
4 | Butelka | 1 | 250 | 2021-07-13 | 05 |
5 | Szczotka | 3 | 90 | 2021-07-15 | 43 |
6 | Notatniki | 10 | 1000 | 26.07.2021 | 05 |
7 | Chusteczka | 3 | 100 | 28.07.2021 | 12 |
8 | Pakiet chipsów | 5 | pięćdziesiąt | 2021-07-30 | 58 |
9 | Znacznik | 2 | 30 | 2021-08-13 | 32 |
10 | Nożyce | 1 | 60 | 2021-08-13 | 20 |