CURRENT_TIMESTAMP
funktion returnerer den aktuelle dato og klokkeslæt som en datotid værdi. Denne værdi er afledt af operativsystemet på den computer, som forekomsten af SQL Server kører på.
Denne funktion er ANSI SQL svarende til T-SQL GETDATE()
funktion, så du kan bruge den, du foretrækker. Bemærk, at begge funktioner har et lavere datointerval og en lavere standardbrøkpræcision end T-SQL SYSDATETIME()
funktion (som returnerer en datetime2(7) værdi).
Denne artikel giver eksempler på CURRENT_TIMESTAMP
funktion, herunder hvordan du kan bruge den sammen med andre funktioner for at returnere den værdi, du er interesseret i.
Syntaks
Syntaksen ser sådan ud:
CURRENT_TIMESTAMP
Så du kalder simpelthen denne funktion uden nogen argumenter.
Eksempel
Her er et grundlæggende eksempel på brug af en SELECT
sætning for at returnere den aktuelle dato og tid fra CURRENT_TIMESTAMP
:
SELECT CURRENT_TIMESTAMP AS Result;
Resultat:
+-------------------------+ | Result | |-------------------------| | 2018-06-16 00:06:36.740 | +-------------------------+
Udtræk en del af datoen
Hvis du kun ønsker en del af returværdien, kan du bruge DATEPART()
for kun at returnere den del af datoen/tidspunktet, som du er interesseret i.
Eksempel:
SELECT DATEPART(month, CURRENT_TIMESTAMP) AS Result;
Resultat:
+----------+ | Result | |----------| | 6 | +----------+
Her er et andet eksempel, der bruger MONTH()
fungere. Resultatet er det samme.
SELECT MONTH(CURRENT_TIMESTAMP) AS Result;
Resultat:
+----------+ | Result | |----------| | 6 | +----------+
Begge disse funktioner returnerer den aktuelle måned. Men de returnerer dem som et heltal, der repræsenterer månedsnummeret.
Hvis du vil have månedens navn returneres i stedet, kan du bruge DATENAME()
:
SELECT DATENAME(month, CURRENT_TIMESTAMP) AS Result;
Resultat:
+----------+ | Result | |----------| | June | +----------+
Formatér datoen
Du kan også bruge andre T-SQL-funktioner til at formatere datoen efter behov.
Her er et eksempel på brug af FORMAT()
funktion til at formatere resultatet:
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';
Resultat:
+------------+------------+-------------------------+--------------+ | 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 | +------------+------------+-------------------------+--------------+
Flere eksempler på Sådan formateres dato og klokkeslæt i SQL Server.
Forøgelse af værdien og find forskellen
Du kan bruge funktioner som DATEDIFF()
for at returnere forskellen mellem den aktuelle dato og en anden dato.
Her er et eksempel på brug af DATEADD()
for at tilføje en måned til den aktuelle dato og derefter finde ud af forskellen i dage:
DECLARE @date1 datetime2 = CURRENT_TIMESTAMP; DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Resultat:
+----------+ | Result | |----------| | 30 | +----------+