logo

CZAS Typ danych w SQL

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

CZAS Typ danych w SQL

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

CZAS Typ danych w SQL

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

Uwaga: użycie małych „s” w powyższym zapytaniu również da ten sam wynik.