CURRENT_TIMESTAMP
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.
Ta funkcja jest odpowiednikiem ANSI SQL dla GETDATE()
T-SQL funkcji, dzięki czemu możesz użyć dowolnej opcji. Zauważ, że obie funkcje mają niższy zakres dat i niższą domyślną precyzję ułamkową niż SYSDATETIME()
języka T-SQL funkcja (która zwraca datetime2(7) wartość).
Ten artykuł zawiera przykłady CURRENT_TIMESTAMP
funkcji, w tym jak możesz jej użyć z innymi funkcjami, aby zwrócić interesującą Cię wartość.
Składnia
Składnia wygląda tak:
CURRENT_TIMESTAMP
Więc po prostu wywołujesz tę funkcję bez żadnych argumentów.
Przykład
Oto podstawowy przykład użycia SELECT
instrukcja zwracająca aktualną datę i godzinę z CURRENT_TIMESTAMP
:
SELECT CURRENT_TIMESTAMP AS Result;
Wynik:
+-------------------------+ | Result | |-------------------------| | 2018-06-16 00:06:36.740 | +-------------------------+
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, CURRENT_TIMESTAMP) AS Result;
Wynik:
+----------+ | Result | |----------| | 6 | +----------+
Oto kolejny przykład z użyciem MONTH()
funkcjonować. Wynik jest taki sam.
SELECT MONTH(CURRENT_TIMESTAMP) 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, CURRENT_TIMESTAMP) 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(CURRENT_TIMESTAMP, 'd', 'en-US') AS 'd, en-US', FORMAT(CURRENT_TIMESTAMP, 'd', 'en-gb') AS 'd, en-gb', FORMAT(CURRENT_TIMESTAMP, 'D', 'en-US') AS 'D, en-US', FORMAT(CURRENT_TIMESTAMP, 'D', 'en-gb') AS 'D, en-gb';
Wynik:
+------------+------------+-------------------------+--------------+ | d, en-US | d, en-gb | D, en-US | D, en-gb | |------------+------------+-------------------------+--------------| | 6/16/2018 | 16/06/2018 | Saturday, June 16, 2018 | 16 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 = CURRENT_TIMESTAMP; DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Wynik:
+----------+ | Result | |----------| | 30 | +----------+