MySQL Práce s daty
Data MySQL
Nejobtížnější při práci s daty je ujistit se, že formát data, které se pokoušíte vložit, odpovídá formátu sloupce data v databázi.
Dokud vaše data obsahují pouze část data, budou vaše dotazy fungovat podle očekávání. Pokud se však jedná o časovou část, je to složitější.
MySQL datové typy dat
MySQL přichází s následujícími datovými typy pro ukládání data nebo hodnoty data/času do databáze:
-
DATE
- formát RRRR-MM-DD -
DATETIME
- formát: YYYY-MM-DD HH:MI:SS TIMESTAMP
- formát: YYYY-MM-DD HH:MI:SS-
YEAR
- formát YYYY nebo YY
Poznámka: Datový typ data se nastavuje pro sloupec při vytváření nové tabulky v databázi!
Práce s daty
Podívejte se na následující tabulku:
Tabulka objednávek
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
2 | Camembert Pierrot | 2008-11-09 |
3 | Mozzarella di Giovanni | 2008-11-11 |
4 | Mascarpone Fabioli | 2008-10-29 |
Nyní chceme vybrat záznamy s datem objednávky "2008-11-11" z výše uvedené tabulky.
Používáme následující SELECT
prohlášení:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
Výsledná sada bude vypadat takto:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Poznámka: Dvě data lze snadno porovnat, pokud se nejedná o žádnou časovou složku!
Nyní předpokládejme, že tabulka "Objednávky" vypadá takto (všimněte si přidané časové složky ve sloupci "Datum objednávky"):
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 13:23:44 |
2 | Camembert Pierrot | 2008-11-09 15:45:21 |
3 | Mozzarella di Giovanni | 2008-11-11 11:12:01 |
4 | Mascarpone Fabioli | 2008-10-29 14:56:59 |
Pokud použijeme stejné SELECT
tvrzení jako výše:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
nedosáhneme žádného výsledku! Důvodem je, že dotaz hledá pouze data bez časové části.
Tip: Chcete-li, aby byly vaše dotazy jednoduché a snadno se udržovaly, nepoužívejte ve svých datech časové složky, pokud nemusíte!