CURRENT_TIMESTAMP
funktion returnerar aktuellt datum och tid som en datetime värde. Detta värde härleds från operativsystemet på den dator som instansen av SQL Server körs på.
Denna funktion är ANSI SQL som motsvarar T-SQL GETDATE()
funktion, så att du kan använda vilken du föredrar. Observera att båda funktionerna har ett lägre datumintervall och en lägre standardprecision än T-SQL SYSDATETIME()
funktion (som returnerar en datetime2(7) värde).
Den här artikeln ger exempel på CURRENT_TIMESTAMP
funktion, inklusive hur du kan använda den med andra funktioner för att returnera det värde du är intresserad av.
Syntax
Syntaxen ser ut så här:
CURRENT_TIMESTAMP
Så du anropar helt enkelt den här funktionen utan några argument.
Exempel
Här är ett grundläggande exempel på hur du använder en SELECT
för att returnera aktuellt datum och tid från CURRENT_TIMESTAMP
:
SELECT CURRENT_TIMESTAMP AS Result;
Resultat:
+-------------------------+ | Result | |-------------------------| | 2018-06-16 00:06:36.740 | +-------------------------+
Extrahera en del av datumet
Om du bara vill ha en del av returvärdet kan du använda DATEPART()
för att endast returnera den del av datumet/tiden som du är intresserad av.
Exempel:
SELECT DATEPART(month, CURRENT_TIMESTAMP) AS Result;
Resultat:
+----------+ | Result | |----------| | 6 | +----------+
Här är ett annat exempel med MONTH()
fungera. Resultatet är detsamma.
SELECT MONTH(CURRENT_TIMESTAMP) AS Result;
Resultat:
+----------+ | Result | |----------| | 6 | +----------+
Båda dessa funktioner returnerar den aktuella månaden. Men de returnerar dem som ett heltal som representerar månadsnumret.
Om du vill ha månadens namn returneras istället kan du använda DATENAME()
:
SELECT DATENAME(month, CURRENT_TIMESTAMP) AS Result;
Resultat:
+----------+ | Result | |----------| | June | +----------+
Formatera datumet
Du kan också använda andra T-SQL-funktioner för att formatera datumet efter behov.
Här är ett exempel på hur du använder FORMAT()
funktion för att formatera 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 | +------------+------------+-------------------------+--------------+
Fler exempel på Hur man formaterar datum och tid i SQL Server.
Öka värdet och hitta skillnaden
Du kan använda funktioner som DATEDIFF()
för att returnera skillnaden mellan det aktuella datumet och ett annat datum.
Här är ett exempel på hur du använder DATEADD()
för att lägga till en månad till det aktuella datumet och sedan ta reda på skillnaden i dagar:
DECLARE @date1 datetime2 = CURRENT_TIMESTAMP; DECLARE @date2 datetime2 = DATEADD(month, 1, CURRENT_TIMESTAMP); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Resultat:
+----------+ | Result | |----------| | 30 | +----------+