Mi a CURRENT_DATE vagy az aktuális dátumérték függvény az SQL Server számára?

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?

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük