logo

TIME Datatyp i SQL

  • Det finns många scenarier i SQL när du behöver lagra tiden i SQL-tabellerna i din databas.
  • För att lagra tiden i dina SQL-tabeller bör ditt första steg vara att skapa en kolumn i din tabell som kan lagra tiden.
  • Om du vill att tiden ska lagras i kolumnen i din tabell måste du skapa en kolumn med datatypen TIME.
  • Datatypen TIME lagrar som standard tiden i formatet 'HH:MM:SS'.
  • Med hjälp av SELECT-satsen i SQL kan du hämta tiden från kolumnen i SQL-tabellerna.
  • Tillsammans med hämtning av tiden i standardformatet som den är lagrad i, finns det en TIME_FORMAT () funktion i SQL med vilken tiden kan hämtas i ett mer läsbart format.
  • Du kan hämta tiden i standardformatet som den är lagrad i i tabellen, d.v.s. 'HH:MM:SS', eller så har du också möjlighet att hämta specifika delar av tiden som timme, minut och sekunder genom att välja en lämplig parameter enligt vårt krav och skicka den till funktionen TIME_FORMAT(). Tiden kan även hämtas i 12-timmars- och 24-timmarsformat.
  • Vi kan också skriva ut tiden följt av AM/PM.

Låt oss se några praktiska exempel för att förstå detta koncept tydligare. Vi kommer att använda MySQL-databasen för att skriva alla frågor.

För att skapa en tabell i databasen väljer vi först en databas där vi vill skapa en tabell.

 mysql> USE dbs; 

Sedan kommer vi att skriva följande fråga för att skapa en tabell:

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

TIME Datatyp i SQL

I ovanstående fråga kommer kolumnen med namnet ItemOrderTime att lagra tiden sedan datatypen för denna kolumn är inställd som en 'TIME'.

Nu kommer vi att skriva en fråga för att infoga poster i tabellen items_tbl.

mittknapp i css
 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'); 

TIME Datatyp i SQL

Vi kommer att köra SELECT-frågan för att verifiera att alla poster har infogats framgångsrikt i tabellen items_tbl.

 mysql> SELECT *FROM items_tbl; 

ID Föremålsnamn Item_Quantity Varupris Item_OrderDate Item_OrderTime
1 Tvål 5 200 2021-07-08 04:13:52
2 Tandkräm 2 80 2021-07-10 18:09:01
3 Penna 10 femtio 2021-07-12 12:00:02
4 Flaska 1 250 2021-07-13 15:07:05
5 Borsta 3 90 2021-07-15 19:18:43
6 Anteckningsböcker 10 1000 2021-07-26 05:05:05
7 Näsduk 3 100 2021-07-28 10:08:12
8 Chipspaket 5 femtio 2021-07-30 08:16:58
9 Markör 2 30 2021-08-13 02:18:32
10 Sax 1 60 2021-08-13 07:17:30

Ovanstående frågeresultat visar att tiden hämtas i standardformatet som den är lagrad i, d.v.s. 'HH:MM:SS'.

Exempel 1:

Skriv en fråga för att hämta alla värden från item_tbl och beställningstiden för artiklar i ett 12-timmarsformat tillsammans med AM/PM för att hämta tidsvärdena i ett mer läsbart format.

Fråga:

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

Här tillämpas funktionen TIME_FORMAT() på Item_OrderTime med parametern '%r' för att skriva ut tiden i 12-timmarsformat följt av AM/PM.

Du får följande tabell som utdata:

ID Föremålsnamn Item_Quantity Varupris Item_OrderDate Item_OrderTime
1 Tvål 5 200 2021-07-08 04:13:52
2 Tandkräm 2 80 2021-07-10 18:09:01
3 Penna 10 femtio 2021-07-12 12:00:02
4 Flaska 1 250 2021-07-13 15:07:05
5 Borsta 3 90 2021-07-15 19:18:43
6 Anteckningsböcker 10 1000 2021-07-26 05:05:05
7 Näsduk 3 100 2021-07-28 10:08:12
8 Chipspaket 5 femtio 2021-07-30 08:16:58
9 Markör 2 30 2021-08-13 02:18:32
10 Sax 1 60 2021-08-13 07:17:30

Exempel 2:

Skriv en fråga för att hämta alla värden från item_tbl och beställningstiden för artiklar i ett 12-timmarsformat tillsammans med AM/PM för att hämta tidsvärdena i ett mer läsbart format.

Fråga:

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

Här tillämpas funktionen TIME_FORMAT () på Item_OrderTime med parametern '%T %p'. '%T' kommer att skriva ut tiden i 24-timmarsformat, och '%p' lägger till AM/PM till den 24-timmarsformaterade tiden.

Du får följande tabell som utdata:

ID Föremålsnamn Item_Quantity Varupris Item_OrderDate Item_OrderTime
1 Tvål 5 200 2021-07-08 04:13:52
2 Tandkräm 2 80 2021-07-10 18:09:01
3 Penna 10 femtio 2021-07-12 12:00:02
4 Flaska 1 250 2021-07-13 15:07:05
5 Borsta 3 90 2021-07-15 19:18:43
6 Anteckningsböcker 10 1000 2021-07-26 05:05:05
7 Näsduk 3 100 2021-07-28 10:08:12
8 Chipspaket 5 femtio 2021-07-30 08:16:58
9 Markör 2 30 2021-08-13 02:18:32
10 Sax 1 60 2021-08-13 07:17:30

Exempel 3:

Skriv en fråga för att hämta alla värden från item_tbl och endast ordertimmen för varor från hela beställningstiden i ett 24-timmarsformat.

Fråga:

hur många miljoner är det i en miljard
 mysql> SELECT ID, Item_Name, Item_Quantity, Item_Price, Item_OrderDate, TIME_FORMAT (Item_OrderTime, '%H') AS Item_OrderHour FROM items_tbl; 

Här tillämpas funktionen TIME_FORMAT () på Item_OrderTime med parametern '%H' för att specifikt skriva ut vilken timme varan beställs. Stort H anger att timmen kommer att skrivas ut i 24-timmarsformat.

Du får följande tabell som utdata:

ID Föremålsnamn Item_Quantity Varupris Item_OrderDate Item_OrderHour
1 Tvål 5 200 2021-07-08 04
2 Tandkräm 2 80 2021-07-10 18
3 Penna 10 femtio 2021-07-12 12
4 Flaska 1 250 2021-07-13 femton
5 Borsta 3 90 2021-07-15 19
6 Anteckningsböcker 10 1000 2021-07-26 05
7 Näsduk 3 100 2021-07-28 10
8 Chipspaket 5 femtio 2021-07-30 08
9 Markör 2 30 2021-08-13 02
10 Sax 1 60 2021-08-13 07

Exempel 4:

Skriv en fråga för att hämta alla värden från item_tbl och endast ordertimmen för varor från hela beställningstiden i ett 12-timmarsformat.

Fråga:

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

Här tillämpas funktionen TIME_FORMAT () på Item_OrderTime med parametern '%h' för att specifikt skriva ut vilken timme varan beställs. Litet 'h' anger att timmen kommer att skrivas ut i 12-timmarsformat.

Du får följande tabell som utdata:

motstridig sökning
ID Föremålsnamn Item_Quantity Varupris Item_OrderDate Item_OrderHour
1 Tvål 5 200 2021-07-08 04
2 Tandkräm 2 80 2021-07-10 6
3 Penna 10 femtio 2021-07-12 12
4 Flaska 1 250 2021-07-13 03
5 Borsta 3 90 2021-07-15 07
6 Anteckningsböcker 10 1000 2021-07-26 05
7 Näsduk 3 100 2021-07-28 10
8 Chipspaket 5 femtio 2021-07-30 08
9 Markör 2 30 2021-08-13 02
10 Sax 1 60 2021-08-13 07

Exempel 5:

Skriv en fråga för att hämta alla värden från item_tbl och endast den minut som en vara beställs från hela beställningstiden.

Fråga:

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

Här tillämpas funktionen TIME_FORMAT () på Item_OrderTime med parametern '%i' för att specifikt skriva ut den minut då artikeln beställs. Litet 'i' anger att minuten från hela 'Item_OrderTime' kommer att skrivas ut.

Du får följande tabell som utdata:

ID Föremålsnamn Item_Quantity Varupris Item_OrderDate Item_OrderMinute
1 Tvål 5 200 2021-07-08 13
2 Tandkräm 2 80 2021-07-10 09
3 Penna 10 femtio 2021-07-12 00
4 Flaska 1 250 2021-07-13 07
5 Borsta 3 90 2021-07-15 18
6 Anteckningsböcker 10 1000 2021-07-26 05
7 Näsduk 3 100 2021-07-28 08
8 Chipspaket 5 femtio 2021-07-30 16
9 Markör 2 30 2021-08-13 18
10 Sax 1 60 2021-08-13 17

Exempel 6:

Skriv en fråga för att hämta alla värden från item_tbl och endast de sekunder som en artikel beställs från hela beställningstiden.

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

Här tillämpas funktionen TIME_FORMAT () på Item_OrderTime med parametern '%S' för att specifikt skriva ut sekunderna då artikeln beställs. Stort 'S' anger att minuten från hela 'Item_OrderTime' kommer att skrivas ut.

strängen är tom

Du får följande tabell som utdata:

ID Föremålsnamn Item_Quantity Varupris Item_OrderDate Item_Order_Seconds
1 Tvål 5 200 2021-07-08 52
2 Tandkräm 2 80 2021-07-10 01
3 Penna 10 femtio 2021-07-12 02
4 Flaska 1 250 2021-07-13 05
5 Borsta 3 90 2021-07-15 43
6 Anteckningsböcker 10 1000 2021-07-26 05
7 Näsduk 3 100 2021-07-28 12
8 Chipspaket 5 femtio 2021-07-30 58
9 Markör 2 30 2021-08-13 32
10 Sax 1 60 2021-08-13 tjugo

Obs: Att använda små 's' i ovanstående fråga ger också samma utdata.