sql >> Database teknologi >  >> RDS >> Sqlserver

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

SYSDATETIME() funktion returnerer den aktuelle dato og tid som en datetime2(7) værdi. Denne værdi er afledt af operativsystemet på den computer, som forekomsten af ​​SQL Server kører på.

Denne artikel giver eksempler på SYSDATETIME() funktion, herunder hvordan du kan bruge den sammen med andre funktioner for at returnere den værdi, du er interesseret i.

Syntaks

Først her er syntaksen:

SYSDATETIME ( )

Så denne funktion accepterer faktisk ikke nogen argumenter. Du kalder det simpelthen 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 SYSDATETIME() :

SELECT SYSDATETIME() AS Result;

Resultat:

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

Så som nævnt returnerer den en datetime2(7) værdi. datetime2 datatypen har et større datointerval og en større standard brøkpræcision end datotidspunktet datatype (som er den datatype, der GETDATE() returnerer – se SYSDATETIME() vs GETDATE():Hvad er forskellen?).

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

Resultat:

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

Nogle gange er der mere end én måde at få det samme resultat på i SQL Server. Her er et andet eksempel, der bruger MONTH() funktion:

SELECT MONTH(SYSDATETIME()) AS Result;

Resultat:

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

Begge disse funktioner returnerede den aktuelle måned. Men de returnerede 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, SYSDATETIME()) 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(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 |
+------------+------------+-----------------------+--------------+

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 = SYSDATETIME();
DECLARE @date2 datetime2 = DATEADD(month, 1, SYSDATETIME());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Resultat:

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


  1. 3 måder at bruge ALL i SQL Server

  2. Sådan bundter du cx_oracle med Pyinstaller

  3. Problemer med at åbne MDF-fil, fordi den siger SQL-fejl 5171? - Et gæsteindlæg af Andre Williams

  4. Slut dig til os i Amsterdam til et møde med OptimaData &VidaXL