Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

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

Die SYSDATETIME() Funktion gibt das aktuelle Datum und die Uhrzeit als datetime2(7) zurück Wert. Dieser Wert wird vom Betriebssystem des Computers abgeleitet, auf dem die Instanz von SQL Server ausgeführt wird.

Dieser Artikel enthält Beispiele für SYSDATETIME() -Funktion, einschließlich der Frage, wie Sie sie mit anderen Funktionen verwenden können, um den Wert zurückzugeben, an dem Sie interessiert sind.

Syntax

Hier ist zunächst die Syntax:

SYSDATETIME ( )

Diese Funktion akzeptiert also eigentlich keine Argumente. Sie rufen es einfach ohne Argumente auf.

Beispiel

Hier ist ein einfaches Beispiel für die Verwendung eines SELECT -Anweisung, um das aktuelle Datum und die Uhrzeit von SYSDATETIME() zurückzugeben :

SELECT SYSDATETIME() AS Result;

Ergebnis:

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

Wie bereits erwähnt, gibt es ein datetime2(7) zurück Wert. Die datetime2 Der Datentyp hat einen größeren Datumsbereich und eine größere standardmäßige Bruchteilgenauigkeit als datetime Datentyp (das ist der Datentyp, den GETDATE() gibt zurück – siehe SYSDATETIME() vs. GETDATE():Was ist der Unterschied?).

Extrahieren Sie einen Teil des Datums

Wenn Sie nur einen Teil des Rückgabewerts möchten, können Sie DATEPART() verwenden um nur den Teil des Datums/der Uhrzeit zurückzugeben, der Sie interessiert.

Beispiel:

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

Ergebnis:

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

Manchmal gibt es mehrere Möglichkeiten, um in SQL Server dasselbe Ergebnis zu erhalten. Hier ist ein weiteres Beispiel mit MONTH() Funktion:

SELECT MONTH(SYSDATETIME()) AS Result;

Ergebnis:

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

Beide Funktionen haben den aktuellen Monat zurückgegeben. Aber sie haben sie als Ganzzahl zurückgegeben, die die Monatsnummer darstellt.

Wenn Sie den Monatsnamen Name möchten stattdessen zurückgegeben, können Sie DATENAME() verwenden :

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

Ergebnis:

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

Datum formatieren

Sie können auch andere T-SQL-Funktionen verwenden, um das Datum nach Bedarf zu formatieren.

Hier ist ein Beispiel für die Verwendung von FORMAT() Funktion zum Formatieren des Ergebnisses:

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

Ergebnis:

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

Weitere Beispiele finden Sie unter How to Format the Date and Time in SQL Server.

Wert erhöhen und den Unterschied finden

Sie können Funktionen wie DATEDIFF() verwenden um die Differenz zwischen dem aktuellen Datum und einem anderen Datum zurückzugeben.

Hier ist ein Beispiel für die Verwendung von DATEADD() um einen Monat zum aktuellen Datum hinzuzufügen und dann die Differenz in Tagen zu ermitteln:

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

Ergebnis:

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