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

CURRENT_TIMESTAMP Eksempler i SQL Server (T-SQL)

CURRENT_TIMESTAMP funktion returnerer den aktuelle dato og klokkeslæt som en datotid værdi. Denne værdi er afledt af operativsystemet på den computer, som forekomsten af ​​SQL Server kører på.

Denne funktion er ANSI SQL svarende til T-SQL GETDATE() funktion, så du kan bruge den, du foretrækker. Bemærk, at begge funktioner har et lavere datointerval og en lavere standardbrøkpræcision end T-SQL SYSDATETIME() funktion (som returnerer en datetime2(7) værdi).

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

Syntaks

Syntaksen ser sådan ud:

CURRENT_TIMESTAMP

Så du kalder simpelthen denne funktion 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 CURRENT_TIMESTAMP :

SELECT CURRENT_TIMESTAMP AS Result;

Resultat:

+-------------------------+
| Result                  |
|-------------------------|
| 2018-06-16 00:06:36.740 |
+-------------------------+

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

Resultat:

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

Her er et andet eksempel, der bruger MONTH() fungere. Resultatet er det samme.

SELECT MONTH(CURRENT_TIMESTAMP) AS Result;

Resultat:

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

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

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

Resultat:

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


  1. Hvordan kan jeg forespørge på en værdi i SQL Server XML-kolonnen

  2. Sådan ÆNDRES flere kolonner på én gang i SQL Server

  3. SQL Server:Hvad er forskellen mellem CROSS JOIN og FULL OUTER JOIN?

  4. Postgresql 9.2 pg_dump version uoverensstemmelse