sql >> Databasteknik >  >> RDS >> Sqlserver

GETDATE() Exempel i SQL Server (T-SQL)

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       |
+----------+


  1. Hur man gör en inre join på radnummer i sql-server

  2. PostgreSQL-logganalys med pgBadger

  3. Hur undkommer man bokstavligt procenttecken när alternativet NO_BACKSLASH_ESCAPES är aktiverat?

  4. Hur man genererar DB-testdata