Най-трудната част при работа с дати е да сте сигурни, че формата на датата, която се опитвате да вмъкнете, съвпада с формата на колоната за дата в базата данни. Докато вашите данни съдържат само частта за дата, вашите заявки ще работят според очакванията. Все пак, ако част от време е замесена, става по-сложна.
Типове данни за SQL Date
MySQL идва със следните типове данни за съхранение на дата или дата / час стойност в базата данни:
- ДАТА – формат YYYY-MM-DD
- DATETIME – формат: YYYY-MM-DD HH: MI: SS
- TIMESTAMP – формат: YYYY-MM-DD HH: MI: SS
- ГОДИНА – формат YYYY или YY
SQL Server се предлага със следните типове данни за съхранение на дата или стойност на дата / час в базата данни:
- ДАТА – формат YYYY-MM-DD
- DATETIME – формат: YYYY-MM-DD HH: MI: SS
- SMALLDATETIME – формат: YYYY-MM-DD HH: MI: SS
- TIMESTAMP – формат: уникален номер
Забележка: Типовете данни са избрани за колона, когато създавате нова таблица във вашата база данни!
SQL Работа с дати
Можете да сравните две дати лесно, ако няма компонент от време! Да приемем, че имаме следната таблица „Orders“:
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 |
Сега искаме да изберете записите с OrderDate на „2008-11-11“ от таблицата по-горе. Използваме следния израз на SELECT:
Наборът от резултати ще изглежда така:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Сега приемете, че таблицата „Orders“ изглежда така (забележете компонента за време в колоната „OrderDate“):
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 |
Ако използваме същото изявление SELECT, както по-горе:
Няма да получим резултат! Това е така, защото заявката търси само дати без време. Съвет: За да запазите заявките си лесни и лесни за поддръжка, не допускайте часовите компоненти в датите!