2008-11-10 3 views
13

ja przeglądając kilka zapytań SQL i widziałem select, który wyglądał jak tenT-SQL: Używanie {fn NOW()} w WHERE

SELECT * 
FROM dbo.mytable 
WHERE (dbo.mytable.[Date] < { fn NOW() }) 

Jaki jest cel za pomocą WHERE tak ?

Czy nie byłoby łatwiej użyć prostej GETDATE()?

Odpowiedz

24

http://www.sqlservercentral.com/Forums/Topic183904-8-1.aspx

GETDATE() jest T-SQL specyficzną funkcję, która zwraca obecnego systemu Data i czas. Odpowiednikiem standardu SQL jest CURRENT_TIMESTAMP, który jest również stosowany również w T-SQL. {Fn Now()} jest funkcją kanoniczną ODBC , która może być używana w T-SQL, ponieważ dostawca OLE DB dla SQL Server obsługuje ich. Nie ma jednak znaczącej różnicy w wydajności między nimi. Ty możesz również użyć formatu kanonicznego, takiego jak:

SELECT {fn CURRENT_TIMESTAMP()} AS "date & time", 
     {fn CURRENT_DATE()} AS "date only", 
     {fn CURRENT_TIME()} AS "time only" ; 
+0

Nie mogę uzyskać dostępu do wspomnianego artykułu. Proszę mnie zalogować. –

+0

Zarejestruj się, to nic nie kosztuje. Odpowiednią częścią jest to, co napisałem w moim poście tutaj. – LeppyR64