Mi az az SQL Server funkció, amely lehetővé teszi, hogy az aktuális dátumot DATE
típusként kapja meg, mint az SQL Normál “s CURRENT_DATE
szolgáltatás. Mi az a <current date value function>
az SQL Server számára?
A PostgreSQL használatával keresek ilyesmihez:
SELECT CURRENT_DATE; current_date -------------- 2018-06-27 (1 row)
Válasz
Bármelyiket használhatja: GETDATE
(visszatérési típus datetime
) vagy SYSDATETIME
(return type datetime2
), a különbség a nanoszekundumokig terjedő pontosság a SYSDATETIME()
számára.
Példa :
SELECT GETDATE() fn_GetDate, SYSDATETIME() fn_SysDateTime
Eredmények:
fn_GetDate fn_SysDateTime 2018-06-27 10:31:18.963 2018-06-27 10:31:18.9659170
Lásd: Dátum és idő adattípusok és függvények (Transact-SQL) a termék dokumentációjában.
A teljesség kedvéért az SQL Server a kérdésben említett CURRENT_DATE
-t is felismeri, mint ODBC skalárfüggvényt :
SELECT {fn CURRENT_DATE()};
Ez varchar(10)
-et ad vissza, ezért explicit átküldésre vagy konvertálásra van szükség a date
adattípus:
SELECT CONVERT(date, {fn CURRENT_DATE()});
A beépített a függvényekben ajánlott az ODBC skalárfüggvényekkel szemben.
Válasz
CAST (... to date)
a div id = “e2d3d7313f”>
vagy SYSDATETIME()
A legjobb mód a
SELECT CAST( GETDATE() AS date );
Az SQL Server kiterjesztésével kiterjesztheti a SYSDATETIME()
dátumot,
SELECT CAST( SYSDATETIME() AS date );
A dokumentumok SYSDATETIME
(Transact-SQL) további példákat mutat be,
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 */
Előnyei lehetnek CAST (GETDATE() AS date)
, mivel natív módon kevesebb pontosságot ad vissza.
Megjegyzések
- Ezt mindig is így tettem, bár ha ön közvetít DATE-ig, számít-e, hogy a beviteli idő pontossága a nanoszekundumhoz képest?