sql >> Databasteknik >  >> RDS >> Sqlserver

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

SYSDATETIME() funktion returnerar aktuellt datum och tid som en datetime2(7) 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å SYSDATETIME() 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:

SYSDATETIME ( )

Så den här funktionen accepterar faktiskt inga argument. Du kallar det helt enkelt 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 SYSDATETIME() :

SELECT SYSDATETIME() AS Result;

Resultat:

+-----------------------------+
| Result                      |
|-----------------------------|
| 2018-06-15 23:09:13.5852199 |
+-----------------------------+

Så som nämnts returnerar den en datetime2(7) värde. datetime2 datatypen har ett större datumintervall och en större standardprecision än datetime datatyp (vilket är den datatyp som GETDATE() returnerar – se SYSDATETIME() vs GETDATE():Vad är skillnaden?).

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, SYSDATETIME()) 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(SYSDATETIME()) AS Result;

Resultat:

+----------+
| Result   |
|----------|
| 6        |
+----------+

Båda dessa funktioner returnerade den aktuella månaden. Men de returnerade 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, SYSDATETIME()) 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(SYSDATETIME(), 'd', 'en-US') AS 'd, en-US',
    FORMAT(SYSDATETIME(), 'd', 'en-gb') AS 'd, en-gb',
    FORMAT(SYSDATETIME(), 'D', 'en-US') AS 'D, en-US',
    FORMAT(SYSDATETIME(), '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 = SYSDATETIME();
DECLARE @date2 datetime2 = DATEADD(month, 1, SYSDATETIME());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Resultat:

+----------+
| Result   |
|----------|
| 30       |
+----------+


  1. rätt syntax att använda nära '?'

  2. Hur man hittar n:e raden i MySQL

  3. Oracle Big Data SQL

  4. Hur drar man tillbaka ett saltat lösenord från databasen och autentiseringsanvändaren?