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

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

GETDATE() 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 artikel giver eksempler på GETDATE() 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:

GETDATE ( )

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 GETDATE() :

SELECT GETDATE() AS Result;

Resultat:

+-------------------------+
| Result                  |
|-------------------------|
| 2018-06-15 23:54:42.013 |
+-------------------------+

Så som nævnt returnerer den en datotid værdi. Hvis du vil have en værdi med flere sekunders brøkpræcision, skal du bruge SYSDATETIME() i stedet. Denne funktion returnerer en datetime2 værdi.

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, GETDATE()) 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(GETDATE()) 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, GETDATE()) 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(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 |
+------------+------------+-----------------------+--------------+

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

Resultat:

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


  1. OPRET SPROG plpython3u – PostgreSQL 9.6

  2. MySQL – Forbindelsesfejl – [MySQL][ODBC 5.3(w)-driver]Værten 'IP' har ikke tilladelse til at oprette forbindelse til denne MySQL-server

  3. Dominoernes hemmeligheder eller en domino-spildatamodel

  4. Sådan indsætter du flere rækker i MySQL