GETDATE()
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å.
Den här artikeln ger exempel på GETDATE()
funktion, inklusive hur du kan använda den med andra funktioner för att returnera det värde du är intresserad av.
Syntax
Först, här är syntaxen:
GETDATE ( )
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
uttalande för att returnera aktuellt datum och tid från GETDATE()
:
SELECT GETDATE() AS Result;
Resultat:
+-------------------------+ | Result | |-------------------------| | 2018-06-15 23:54:42.013 | +-------------------------+
Så som nämnts returnerar den en datumtid värde. Om du vill ha ett värde med mer sekunders bråkprecision, använd SYSDATETIME()
istället. Den funktionen returnerar en datetime2 värde.
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, GETDATE()) AS Result;
Resultat:
+----------+ | Result | |----------| | 6 | +----------+
Ibland finns det mer än ett sätt att få samma resultat i SQL Server. Här är ett annat exempel med MONTH()
funktion:
SELECT MONTH(GETDATE()) 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, GETDATE()) 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(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';
Resultat:
+------------+------------+-----------------------+--------------+ | 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 | +------------+------------+-----------------------+--------------+
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 = GETDATE(); DECLARE @date2 datetime2 = DATEADD(month, 1, GETDATE()); SELECT DATEDIFF(day, @date1, @date2) AS Result;
Resultat:
+----------+ | Result | |----------| | 30 | +----------+