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?