Samouczek SQL

SQL HOME Wprowadzenie do SQL Składnia SQL Wybór SQL SQL Wybierz Wyraźne SQL Gdzie SQL i lub nie Kolejność SQL według SQL Wstaw do Puste wartości SQL Aktualizacja SQL Usuń SQL SQL Wybierz Góra Minimalna i maksymalna wartość SQL Liczba SQL, średnia, suma Polubienie SQL Symbole wieloznaczne SQL SQL In SQL między Aliasy SQL Połączenia SQL Wewnętrzne złącze SQL Połączenie lewe SQL Prawe połączenie SQL Pełne dołączenie do SQL Samoprzyłączanie SQL SQL Union Grupa SQL według Posiadanie SQL SQL istnieje SQL Dowolne, Wszystkie SQL Wybierz do Wstaw SQL do Wybierz Sprawa SQL Funkcje zerowe SQL Procedury składowane w SQL Komentarze SQL Operatory SQL

Baza danych SQL

Tworzenie bazy danych SQL Porzucona baza danych SQL Kopia zapasowa bazy danych SQL Utwórz tabelę SQL Tabela upuszczania SQL Zmień tabelę SQL Ograniczenia SQL SQL nie jest pusty Unikalny SQL Klucz podstawowy SQL Klucz obcy SQL Sprawdzanie SQL Domyślny SQL Indeks SQL Automatyczny przyrost SQL Daty SQL Widoki SQL Wstrzyknięcie SQL Hosting SQL Typy danych SQL

Referencje SQL

Słowa kluczowe SQL Funkcje MySQL Funkcje serwera SQL Funkcje dostępu MS Szybkie odwołanie do SQL

Przykłady SQL

Przykłady SQL Quiz SQL Ćwiczenia SQL Certyfikat SQL

SQL pracujący z datami


Daty SQL

Najtrudniejszą częścią pracy z datami jest upewnienie się, że format daty, którą próbujesz wstawić, odpowiada formatowi kolumny daty w bazie danych.

Dopóki Twoje dane zawierają tylko część dotyczącą daty, Twoje zapytania będą działać zgodnie z oczekiwaniami. Jeśli jednak w grę wchodzi część czasu, sprawa staje się bardziej skomplikowana.


Typy danych daty SQL

MySQL zawiera następujące typy danych do przechowywania daty lub wartości daty/czasu w bazie danych:

  • DATE - format RRRR-MM-DD
  • DATETIME - format: RRRR-MM-DD GG:MI:SS
  • TIMESTAMP - format: RRRR-MM-DD GG:MI:SS
  • YEAR - format RRRR lub RR

SQL Server zawiera następujące typy danych do przechowywania daty lub wartości daty/godziny w bazie danych:

  • DATE - format RRRR-MM-DD
  • DATETIME - format: RRRR-MM-DD GG:MI:SS
  • SMALLDATETIME - format: RRRR-MM-DD GG:MI:SS
  • TIMESTAMP - format: unikalny numer

Uwaga: Typy dat są wybierane dla kolumny podczas tworzenia nowej tabeli w bazie danych!


SQL pracujący z datami

Spójrz na poniższą tabelę:

Tabela zamówień

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 wybrać rekordy z datą zamówienia „2008-11-11” z powyższej tabeli.

Używamy następującego SELECToświadczenia:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

Zestaw wyników będzie wyglądał tak:

OrderId ProductName OrderDate
1 Geitost 2008-11-11
3 Mozzarella di Giovanni 2008-11-11

Uwaga: Dwie daty można łatwo porównać, jeśli nie ma w tym składnika czasu!

Teraz załóżmy, że tabela „Orders” wygląda tak (zwróć uwagę na dodany składnik czasu w kolumnie „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

Jeśli użyjemy tego samego SELECTstwierdzenia co powyżej:

SELECT * FROM Orders WHERE OrderDate='2008-11-11'

nie otrzymamy żadnego wyniku! Dzieje się tak, ponieważ zapytanie szuka tylko dat bez części czasowej.

Wskazówka: Aby zapytania były proste i łatwe w utrzymaniu, nie używaj w datach elementów czasowych, chyba że musisz!