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