Was ist die Funktion CURRENT_DATE oder der aktuelle Datumswert für SQL Server?

Mit welcher SQL Server-Funktionalität können Sie das aktuelle Datum als DATE -Typ wie SQL abrufen Standardfunktion „s CURRENT_DATE. Was ist die <current date value function> für SQL Server?

Mit PostgreSQL suche ich

SELECT CURRENT_DATE; current_date -------------- 2018-06-27 (1 row) 

Antwort

Sie können entweder GETDATE (Rückgabetyp datetime ) oder SYSDATETIME (Rückgabetyp datetime2 ), mit dem Unterschied, dass die Genauigkeit für SYSDATETIME() bis zu Nanosekunden beträgt.

Beispiel :

SELECT GETDATE() fn_GetDate, SYSDATETIME() fn_SysDateTime 

Ergebnisse:

 fn_GetDate fn_SysDateTime 2018-06-27 10:31:18.963 2018-06-27 10:31:18.9659170

Siehe Datums- und Uhrzeitdatentypen und -funktionen (Transact-SQL) in der Produktdokumentation.


Der Vollständigkeit halber erkennt SQL Server auch CURRENT_DATE, wie in der Frage erwähnt, als ODBC-Skalarfunktion :

SELECT {fn CURRENT_DATE()}; 

Dies gibt varchar(10) zurück und erfordert daher eine explizite Umwandlung oder Konvertierung in die date Datentyp:

SELECT CONVERT(date, {fn CURRENT_DATE()}); 

Der gebaute- In-Funktionen werden gegenüber ODBC-Skalarfunktionen empfohlen.

Antwort

CAST (... to date) mit GETDATE() oder SYSDATETIME()

Der beste Weg ist

SELECT CAST( GETDATE() AS date ); 

Durch Erweiterung in SQL Server können Sie SYSDATETIME() auf den neuesten Stand bringen,

SELECT CAST( SYSDATETIME() AS date ); 

Die Dokumente auf SYSDATETIME (Transact-SQL) zeigt einige weitere Beispiele,

SELECT CONVERT (date, SYSDATETIME()) ,CONVERT (date, SYSDATETIMEOFFSET()) ,CONVERT (date, SYSUTCDATETIME()) ,CONVERT (date, CURRENT_TIMESTAMP) ,CONVERT (date, GETDATE()) ,CONVERT (date, GETUTCDATE()); /* All returned 2007-04-30 */ 

Es kann Vorteile geben CAST (GETDATE() AS date), wie gibt nativ weniger Genauigkeit zurück.

Kommentare

  • So habe ich es immer gemacht, auch wenn Sie gießen Ist es für DATE wichtig, ob die Eingabezeit auf die Nanosekunde genau ist?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.