Нет, ты не можешь. Преобразователи значений выполняются на клиенте, а не в базе данных, поэтому ваша функция db там не сработает
Единственный способ добиться этого - реплицировать код функции db в c #, и вместо броска не реализованного вы можете поместить эту логику там. И используйте его тогда в вашем конвертере значений, если функция вызывается из базы данных, она будет использовать функцию db из db, если она вызывается локально, она будет использовать код c #
Вы можете изменить формат даты по умолчанию для пользователя , выбрав язык по умолчанию для этого пользователя в SQL Management Studio> Безопасность> Логины> {свойства пользователя}> Язык по умолчанию.
И вы можете увидеть формат даты для каждого языка с помощью
EXEC sp_helplanguage
SET dateformat dmy;
SELECT * FROM sesiones WHERE ultimo_acceso < '16/04/2009 13:36:17';
Я думаю, вы в замешательстве. Datetime на сервере sql вообще не хранится в виде строк. Они хранятся в виде 8-байтовых двоичных значений и преобразуются в строки только тогда, когда вы показываете их пользователю. Вы используете столбец Datetime для хранения ваших дат, верно?
При работе со строками даты и времени в SQL Server я всегда использовал бы формат даты ISO-8601
YYYY-MM-DDTHH:MM:SS
, который должен работать независимо от того, какой у вас язык или региональные настройки.
Попробуйте выбрать:
SELECT * FROM sesiones WHERE ultimo_acceso < '2009-04-16T13:36:17'
Marc