GETDATE()
funkcja zwraca bieżącą datę i godzinę jako data-godzina wartość. Ta wartość pochodzi z systemu operacyjnego komputera, na którym działa instancja SQL Server.
Ten artykuł zawiera przykłady funkcji GETDATE()
funkcji, w tym jak możesz jej użyć z innymi funkcjami, aby zwrócić interesującą Cię wartość.
Składnia
Po pierwsze, oto składnia:
GETDATE ( )
Więc po prostu wywołujesz tę funkcję bez żadnych argumentów.
Przykład
Oto podstawowy przykład użycia SELECT
instrukcja do zwrócenia bieżącej daty i godziny z GETDATE()
:
SELECT GETDATE() AS Result;
Wynik:
+-------------------------+ | Result | |-------------------------| | 2018-06-15 23:54:42.013 | +-------------------------+
Jak wspomniano, zwraca datę i godzinę wartość. Jeśli chcesz uzyskać wartość z większą dokładnością ułamkową w sekundach, użyj SYSDATETIME()
zamiast. Ta funkcja zwraca datetime2 wartość.
Wyodrębnij część daty
Jeśli chcesz tylko część zwracanej wartości, możesz użyć DATEPART()
aby zwrócić tylko tę część daty/godziny, która Cię interesuje.
Przykład:
SELECT DATEPART(month, GETDATE()) AS Result;
Wynik:
+----------+ | Result | |----------| | 6 | +----------+
Czasami istnieje więcej niż jeden sposób na uzyskanie tego samego wyniku w SQL Server. Oto kolejny przykład z użyciem MONTH()
funkcja:
SELECT MONTH(GETDATE()) AS Result;
Wynik:
+----------+ | Result | |----------| | 6 | +----------+
Obie te funkcje zwracają bieżący miesiąc. Ale zwracają je jako liczbę całkowitą reprezentującą numer miesiąca.
Jeśli chcesz miesiąc nazwa zamiast tego zwrócone, możesz użyć DATENAME()
:
SELECT DATENAME(month, GETDATE()) AS Result;
Wynik:
+----------+ | Result | |----------| | June | +----------+
Sformatuj datę
Możesz także użyć innych funkcji T-SQL, aby sformatować datę zgodnie z wymaganiami.
Oto przykład użycia FORMAT()
funkcja formatowania wyniku:
SELECT FORMAT(GETDATE(), 'd', 'en-US') AS 'd, en-US', FORMAT(GETDATE(), 'd', 'en-gb') AS 'd, en-gb', FORMAT(GETDATE(), 'D', 'en-US') AS 'D, en-US', FORMAT(GETDATE(), 'D', 'en-gb') AS 'D, en-gb';
Wynik:
+------------+------------+-----------------------+--------------+ | d, en-US | d, en-gb | D, en-US | D, en-gb | |------------+------------+-----------------------+--------------| | 6/15/2018 | 15/06/2018 | Friday, June 15, 2018 | 15 June 2018 | +------------+------------+-----------------------+--------------+
Więcej przykładów w Jak formatować datę i godzinę w SQL Server.
Zwiększanie wartości i znajdowanie różnicy
Możesz używać funkcji takich jak DATEDIFF()
aby zwrócić różnicę między bieżącą datą a inną datą.
Oto przykład użycia DATEADD()
aby dodać miesiąc do bieżącej daty, a następnie sprawdzić różnicę w dniach:
DECLARE @date1 datetime2 = GETDATE(); DECLARE @date2 datetime2 = DATEADD(month, 1, GETDATE()); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Wynik:
+----------+ | Result | |----------| | 30 | +----------+