SELECT {fn TRUNCATE( 100.123456, 4)};

Z dokumentacji technet ( http://msdn.microsoft.com/en-us/library/bb630290(v=sql.105).aspx )

You can use ODBC Scalar Functions in Transact-SQL statements. These statements are interpreted by SQL Server. They can be used in stored procedures and user-defined functions. These include string, numeric, time, date, interval, and system functions.”

Dzisiaj coś mniej praktycznego, ale za to ciekawie wyglądającego 🙂
SQL Server, prócz oczywiście komunikacji DO niego i Z niego przy pomocy sterownika ODBC, posiada wkompilowaną obsługę funkcji skalarnych. (zwracających skalary – czyli jedną wartość) dostępnych w ODBC (Open DataBase Connectivity). ODBC jest standardem dostępu do danych wymyślonym na potrzeby wielu różnych platform systemowych i aplikacyjnych chcących korzystać z przeróżnych systemów baz danych w ten sam sposób,

Lista wszystkich funkcji dostępna jest tutaj: http://msdn.microsoft.com/pl-pl/library/ms711813.aspx

Nas może zaciekawić sposób wyciągania informacji przy pomocy tych funkcji. Nie mam informacji na ile są one wydajne, znaczna cześć ich funkcjonalności jest zaimplementowana natywnie w silnik SQL i tych zalecam używać, oczywiście można korzystac z ODBC ale radziłbym tam gdzie nie ma dużo danych danych lub tylko w celach szpanu i zaskakiwania, ze istnieje taka forma odpytania o dane 😀

Przeklejam przyklad uzycia z dokumentacji SQL:

DECLARE @string_exp nvarchar(4000) = 'Returns the length.';
SELECT {fn BIT_LENGTH( @string_exp )};
-- Returns 304
SELECT {fn OCTET_LENGTH( @string_exp )};
-- Returns 38

SELECT {fn CONCAT( 'CONCAT ','returns a character string')};
-- Returns CONCAT returns a character string
SELECT {fn TRUNCATE( 100.123456, 4)};
-- Returns 100.123400
SELECT {fn CURRENT_DATE( )};
-- Returns 2007-04-20
SELECT {fn CURRENT_TIME(6)};
-- Returns 10:27:11.973000

DECLARE @date_exp nvarchar(30) = '2007-04-21 01:01:01.1234567';
SELECT {fn DAYNAME( @date_exp )};
-- Returns Saturday
SELECT {fn DAYOFMONTH( @date_exp )};
-- Returns 21
SELECT {fn DAYOFWEEK( @date_exp )};
-- Returns 7
SELECT {fn HOUR( @date_exp)};
-- Returns 1 
SELECT {fn MINUTE( @date_exp )};
-- Returns 1
SELECT {fn MONTHNAME( @date_exp )};
-- Returns April
SELECT {fn QUARTER( @date_exp )};
-- Returns 2
SELECT {fn WEEK( @date_exp )};
-- Returns 16

 

POST PIERWOTNIE OPUBLIKOWANY JAKO TSQL NA DZIŚ #11

Dodaj komentarz