Podstawowe typy danych daty w SQL
Jak są przechowywane na serwerze SQL?
W serwerze SQL daty są przechowywane za pomocą dwóch 4-bajtowych liczb całkowitych. Początkowa liczba całkowita odpowiada liczbie dni poprzedzających lub następującej w dniu podstawowym 1 stycznia 1900 r. Druga liczba całkowita odpowiada liczbie 1/300. sekundy, która upłynęła od północy. Na przykład data „1 stycznia 2000 12:00:00” jest przechowywana jako dwa liczby całkowite - 36 529 (liczba dni między 1 stycznia 1900 r. A 1 stycznia 2000 r.) I 43 200 000 (liczba 1/300th sekundy od północy).
Serwer SQL zapewnia również szereg wbudowanych funkcji do pracy z datami, takimi jak DateAdd, Datediff i Convert, które pozwalają nam wykonywać wspólne operacje, takie jak dodawanie lub odejmowanie przedziałów czasowych, porównywanie dat i formatowanie Daktyle.
Aby wykonać zapytania SQL w bazie danych, zwykle używamy narzędzia takiego jak SQL Server Management Studio (SSMS).
Tworzenie [dbo].[Zamówienia] Tabela
Aby utworzyć tabelę w naszej bazie danych, musimy napisać następujące zapytania:
Utwórz tabelę [DBO].[ZAMÓWIENIA] (
[ord_number] int not null
,[ord_dateTime] datetime null
,[ord_date] data null
,[Deli_DateTime] DateTime null
,[last_visit_date] data null
)
Wstawienie danych do [DBO].[Zamówienia] Tabela
Włóż wartości w tabeli za pomocą następującego polecenia:
Wstaw do [dbo].[Zamówienia] ([ord_number], [ord_dateTime], [ord_date], [deli_dateTime], [last_visit_date]))))))
Wartości
(„1”, „2021-10-01 10:30:00”, „2021-10-01”, „2021-10-12 10:11:10”, „2021-11-01”),
(„2”, „2021-10-01 12:45:00”, „2021-10-01”, „2021-10-10 14:10:11”, „2021-10-15”),
(„3”, „2021-10-30 13:25:00”, „2021-10-30”, „2021-11-05 13:22:12”, „2021-12-30”),
(„4”, „2021-09-22 16:30:00”, „2021-09-22”, „2021-09-25 14:12:13”, „2021-12-22”),
(„5”, „2021-01-10 18:15:00”, „2021-01-10”, „2021-02-01 11:15:14”, „2022-01-10”),
(„6”, current_timestamp, Convert (data, current_timestamp), dataadd (dzień, 5, current_timestamp), dataadd (miesiąc, 5, current_timestamp)))
Przekształcenie daty do ciągu
Jeśli przywrócimy wartości datetime z tabeli, wyniki będą wyświetlane jako „2021-10-01 10:30:00.000 ”. Ale jeśli lubimy przekonwertować go na ciąg w naszym własnym formacie w kodzie SQL, możemy to zrobić za pomocą następującej funkcji:
WYBIERAĆ
[ord_dateTime]
,Konwertuj (varchar (20), [ord_dateTime], 22) „order_date_string”
Z
[dbo].[ZAMÓWIENIA]
Wyjście:
ord_dateTime Order_Date_String
2021-10-01 10:30:00.000 10/01/21 10:30:00
2021-10-01 12:45:00.000 10/01/21 12:45:00
2021-10-30 13:25:00.000 10/30/21 13:25:00
Znalezienie konkretnej daty za pomocą klauzuli Where
Aby znaleźć zamówienia, w których data zamówienia wynosi 1 grudnia 2021 r., Musimy śledzić następujące zapytanie:
WYBIERAĆ
[ord_number]
,[ord_date]
Z
[dbo].[ZAMÓWIENIA]
GDZIE
[ord_date] = '01/10/2021 '
Wyjście:
ord_number ord_date
5 2021-01-10
5 2021-01-10
Oddzielenie daty od czasu
Możemy również użyć funkcji konwertowania w dniu, aby odzyskać tylko wartość daty, określając styl. W tym celu używamy następującego zapytania:
Deklaruj @DD jako datetime
Set @dd = '2011-07-03 20:30:40'
Wybierz Konwertuj (varchar, @dd, 103)
Wyjście:
(Brak nazwy kolumny)
1 03/07/2011
Uzyskanie bieżącej daty i godziny
Oto przykład zapytania SQL, które pobiera bieżącą datę i godzinę za pomocą funkcji GetDate i Current_timestamp:
WYBIERAĆWyjście:
(Bez nazwy kolumny) (bez nazwy kolumny)Znalezienie różnicy między dwiema datami
Często pomocne jest znalezienie różnicy między dwiema datami. Dzięki temu możemy robić takie rzeczy, jak znaleźć liczbę dni między zamówieniem a datą dostawy.
Oto przykład:
WYBIERAĆWyjście:
ord_date deli_dateTime Del_DaysWniosek
Nauczyliśmy się, jak manipulować datami, czasami i strunami za pomocą wbudowanych funkcji. Funkcje te są bardzo przydatne do wykonywania obliczeń i transformacji danych przechowywanych w tabelach SQL Server. Dzięki zrozumieniu i efektywnym wykorzystaniu tych typów danych i funkcji możemy pisać bardziej wydajne i potężne zapytań SQL.