sql >> Database >  >> RDS >> Sqlserver

SYSDATETIME() Voorbeelden in SQL Server (T-SQL)

De SYSDATETIME() functie retourneert de huidige datum en tijd als een datetime2(7) waarde. Deze waarde is afgeleid van het besturingssysteem van de computer waarop het exemplaar van SQL Server wordt uitgevoerd.

Dit artikel geeft voorbeelden van de SYSDATETIME() functie, inclusief hoe u deze kunt gebruiken met andere functies om de waarde terug te geven waarin u geïnteresseerd bent.

Syntaxis

Ten eerste, hier is de syntaxis:

SYSDATETIME ( )

Deze functie accepteert dus eigenlijk geen argumenten. Je noemt het gewoon zonder enig argument.

Voorbeeld

Hier is een eenvoudig voorbeeld van het gebruik van een SELECT statement om de huidige datum en tijd van SYSDATETIME() . te retourneren :

SELECT SYSDATETIME() AS Result;

Resultaat:

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

Dus zoals vermeld, retourneert het een datetime2(7) waarde. De datetime2 gegevenstype heeft een groter datumbereik en een grotere standaard fractionele precisie dan de datetime gegevenstype (dit is het gegevenstype dat GETDATE() retourneert - zie SYSDATETIME() vs GETDATE():Wat is het verschil?).

Een deel van de datum extraheren

Als u slechts een deel van de retourwaarde wilt, kunt u DATEPART() . gebruiken om alleen dat deel van de datum/tijd terug te geven waarin u geïnteresseerd bent.

Voorbeeld:

SELECT DATEPART(month, SYSDATETIME()) AS Result;

Resultaat:

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

Soms is er meer dan één manier om hetzelfde resultaat te krijgen in SQL Server. Hier is nog een voorbeeld met de MONTH() functie:

SELECT MONTH(SYSDATETIME()) AS Result;

Resultaat:

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

Beide functies hebben de huidige maand geretourneerd. Maar ze gaven ze terug als een geheel getal dat het maandnummer vertegenwoordigt.

Als je de maand naam wilt in plaats daarvan geretourneerd, kunt u DATENAME() . gebruiken :

SELECT DATENAME(month, SYSDATETIME()) AS Result;

Resultaat:

+----------+
| Result   |
|----------|
| June     |
+----------+

Maak de datum op

U kunt ook andere T-SQL-functies gebruiken om de datum naar wens op te maken.

Hier is een voorbeeld van het gebruik van de FORMAT() functie om het resultaat op te maken:

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';

Resultaat:

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

Meer voorbeelden op Hoe de datum en tijd in SQL Server te formatteren.

De waarde verhogen en het verschil vinden

U kunt functies gebruiken zoals DATEDIFF() om het verschil tussen de huidige datum en een andere datum te retourneren.

Hier is een voorbeeld van het gebruik van DATEADD() om een ​​maand toe te voegen aan de huidige datum en vervolgens het verschil in dagen te zien:

DECLARE @date1 datetime2 = SYSDATETIME();
DECLARE @date2 datetime2 = DATEADD(month, 1, SYSDATETIME());
SELECT DATEDIFF(day, @date1, @date2) AS Result;

Resultaat:

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


  1. Tabel als argument van een PostgreSQL-functie

  2. Hoe converteer je alle tabellen van MyISAM naar InnoDB?

  3. Hoe selecteer ik alle records uit de ene tabel die niet in een andere tabel voorkomen?

  4. MYSQL Selecteer MAX Date in een join-instructie