Termin SQL
Najtrudniejszą częścią podczas pracy z datami jest, aby upewnić się, że format daty próbujesz wstawić, pasuje do formatu kolumnie data w bazie danych.
Data Funkcje MySQL
Poniższa tabela zawiera najważniejsze funkcje wbudowane daty w MySQL:
Funkcjonować | Opis |
---|---|
NOW() | Zwraca bieżącą datę i godzinę |
CURDATE() | Zwraca bieżącą datę |
CURTIME() | Zwraca aktualny czas |
DATE() | Ekstrakty datę część datę lub datę / czas wypowiedzi |
EXTRACT() | Zwraca pojedynczą część datę / czas |
DATE_ADD() | Dodaje określony przedział czasu do daty |
DATE_SUB() | Odejmuje określonego czasu od daty |
DATEDIFF() | Zwraca liczbę dni między dwiema datami |
DATE_FORMAT() | Wyświetla datę / czas danych w różnych formatach |
SQL Server Data Funkcje
Poniższa tabela zawiera najważniejsze wbudowane date funkcje w SQL Server:
Funkcjonować | Opis |
---|---|
GETDATE() | Zwraca bieżącą datę i godzinę |
DATEPART() | Zwraca pojedynczą część datę / czas |
DATEADD() | Dodaje lub odejmuje określonego czasu od daty |
DATEDIFF() | Zwraca czas pomiędzy dwiema datami |
CONVERT() | Wyświetla datę / czas danych w różnych formatach |
SQL Data Typy danych
MySQL pochodzi z następujących typów danych do przechowywania daty lub wartość daty / czasu w bazie danych:
- DATA - format YYYY-MM-DD
- DATETIME - format: RRRR-MM-DD HH: MI: SS
- TIMESTAMP - format: RRRR-MM-DD HH: MI: SS
- ROK - format YYYY lub YY
SQL Server jest wyposażony w następujące typy danych do przechowywania daty lub wartość daty / czasu w bazie danych:
- DATA - format YYYY-MM-DD
- DATETIME - format: RRRR-MM-DD HH: MI: SS
- Smalldatetime - format: RRRR-MM-DD HH: MI: SS
- TIMESTAMP - format: unikalny numer
Note: Typy daty są wybierane dla kolumny podczas tworzenia nowej tabeli w bazie danych!
Aby otrzymać przegląd wszystkich dostępnych typów danych, przejdź do naszego pełnego odniesienia typów danych .
SQL Praca z datami
Możesz porównać dwie daty łatwo, jeśli nie ma składnika czasu zaangażowany!
Załóżmy, że mamy następujący "Orders" tabeli:
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 |
Teraz chcemy, aby wybrać rekordy z OrderDate z "2008-11-11" z powyższej tabeli.
Używamy następującą instrukcję SELECT:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
Wynik-set będzie wyglądać następująco:
OrderId | ProductName | OrderDate |
---|---|---|
1 | Geitost | 2008-11-11 |
3 | Mozzarella di Giovanni | 2008-11-11 |
Teraz załóżmy, że "Orders" tabeli wygląda następująco (zauważ składową czasową w "OrderDate" kolumny):
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 |
Jeśli używamy tego samego SELECT jak wyżej:
SELECT * FROM Orders WHERE OrderDate='2008-11-11'
będziemy mieli żadnego rezultatu! To dlatego, że zapytanie jest tylko patrząc na daty bez części czasu.
Tip: Jeśli chcesz zachować swoje pytania proste i łatwe w utrzymaniu, nie pozwalają komponenty czasu w terminach!