Funkcja Date w SQL
- Poprzednia strona Widok SQL
- Następna strona Null w SQL
Data SQL
Najtrudniejszym zadaniem, gdy pracujemy z datami, jest upewnienie się, że format daty, którą wstawiamy, pasuje do formatu kolumny datowej w bazie danych.
Jeśli dane zawierają tylko część daty, uruchomienie zapytania nie powinno napotkać na problemy. Ale jeśli chodzi o czas, sytuacja jest nieco bardziej skomplikowana.
Zanim przejdziemy do omówienia złożoności zapytań dotyczących dat, przyjrzyjmy się najważniejszym wbudowanym funkcjom przetwarzania dat.
Funkcja
Opis
Funkcja | Opis |
---|---|
Funkcja NOW() | Zwraca bieżącą datę i czas |
Funkcja CURDATE() | Zwraca bieżącą datę |
Funkcja CURTIME() | Zwraca bieżącą godzinę |
Funkcja DATE() | Wyodrębnienie części daty z wyrażenia daty/czasu |
Funkcja EXTRACT() | Zwraca pojedyncze części daty/czasu według kryterium |
Funkcja DATE_ADD() | Dodawanie określonej liczby jednostek czasu do daty |
Funkcja DATE_SUB() | Odejmowanie określonej liczby jednostek czasu od daty |
Funkcja DATEDIFF() | Zwraca liczbę dni między dwoma datami |
Funkcja DATE_FORMAT() | Wyświetlanie dat/czasu w różnych formatach |
Funkcje dat SQL Server
Poniższa tabela zawiera najważniejsze wbudowane funkcje dat w SQL Serverze:
Funkcja | Opis |
---|---|
Funkcja GETDATE() | Zwraca bieżącą datę i czas |
Funkcja DATEPART() | Zwraca pojedyncze części daty/czasu |
Funkcja DATEADD() | Dodawanie lub odejmowanie określonej liczby jednostek czasu od daty |
Funkcja DATEDIFF() | Zwraca czas między dwoma datami |
Funkcja CONVERT() | Wyświetlanie dat/czasu w różnych formatach |
Typ danych SQL Date
MySQL używa poniższych typów danych do przechowywania dat lub wartości dat/czasu w bazie danych:
- DATE - Format YYYY-MM-DD
- DATETIME - Format: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format: YYYY-MM-DD HH:MM:SS
- YEAR - Format YYYY lub YY
SQL Server używa następujących typów danych do przechowywania dat lub wartości dat/czasu w bazie danych:
- DATE - Format YYYY-MM-DD
- DATETIME - Format: YYYY-MM-DD HH:MM:SS
- SMALLDATETIME - Format: YYYY-MM-DD HH:MM:SS
- TIMESTAMP - Format: Unikalny numer
Przetwarzanie dat w SQL
Jeśli nie dotyczy część czasowa, możemy łatwo porównać dwie daty!
Załóżmy, że mamy poniższą tabelę "Orders":
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
2 | printer | 2008-12-26 |
3 | electrograph | 2008-11-12 |
4 | telephone | 2008-10-19 |
Teraz, chcemy wybrać z powyższej tabeli rekordy, gdzie OrderDate wynosi "2008-12-26".
Używamy następującego zapytania SELECT:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
Zbiór wyników:
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 |
3 | electrograph | 2008-12-26 |
Załóżmy, że klasa "Orders" wygląda tak (proszę zauważyć część czasową kolumny "OrderDate"):
OrderId | ProductName | OrderDate |
---|---|---|
1 | computer | 2008-12-26 16:23:55 |
2 | printer | 2008-12-26 10:45:26 |
3 | electrograph | 2008-11-12 14:12:08 |
4 | telephone | 2008-10-19 12:56:10 |
Jeśli użyjemy powyższego zapytania SELECT:
SELECT * FROM Orders WHERE OrderDate='2008-12-26'
Nie uzyskamy wyników. To jest spowodowane tym, że data w zapytaniu nie zawiera części czasowej.
Wskazówka:Jeśli chcesz, aby zapytanie było proste i łatwe do utrzymania, nie używaj części czasowej daty w datach!
- Poprzednia strona Widok SQL
- Następna strona Null w SQL