Вопрос по функциям ODBC:
Мне нужно получить календарную неделю ISO 8601 из даты-времени SQL.В SQL-сервере синтаксис для этого таков:
SELECT DATEPART(ISO_WEEK, GETDATE())
в SQL Server 2005, ISO_WEEK не существует, поэтому я должен использовать такую функцию: http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/iso-week-in-sql-server
Теперь мой вопрос: чтобы сохранить независимость от базы данных, возможно ли получить календарную неделю ISO с помощью функции ODBC ?
Подобные ODBC-функции (кроме, конечно, getdate):
SELECT
GETDATE() AS vT_SQL_DateTime_NonDeterministic_Function
,{ fn NOW() } AS vODBC_DateTime_Canonical_Function
,{ fn CURDATE() } AS vODBC_DateOnly_Canonical_Function
,CAST(FLOOR(CAST(GETDATE() AS float)) AS datetime) AS vFloor_Mine
,CONVERT(char(8), { fn NOW() }, 112) AS v112_ISO
,CONVERT(char(10), { fn NOW() }, 104) AS v104_Thomas
,{ fn CONVERT({fn CURDATE()}, SQL_DATE)} AS vODBC_Proper
-- Testing ODBC functions & syntax
,{ fn CONCAT('abc', 'def')} AS ODBC_Concat
,{ fn CONCAT(NULL, 'def')} AS ODBC_Concat_NullLeft
,{ fn CONCAT('abc', NULL)} AS ODBC_Concat_NullRight
,{ fn CONCAT(NULL, NULL)} AS ODBC_Concat_NullBoth
,{ fn LENGTH('abc')} AS ODBC_Length
,{ fn UCASE('abc')} AS ODBC_UCASE
,{ fn LCASE('ABC')} AS ODBC_LCASE
,{ fn SUBSTRING('Test me', 1, 4)} AS ODBC_SUBSTRING
,{ fn LOCATE('in', 'needle in the haystack')} AS ODBC_Locate
,{ fn SUBSTRING('Test me', 1, { fn LOCATE(' me', 'Test me') } - 1)} AS ODBC_SUBSTRING_Locate