Дата передана в качестве аргумента SQL хранимой процедуре сервера - вызывается из скрипта pyodb c - PullRequest
0 голосов
/ 02 февраля 2020

Есть ли что-то, что происходит с форматированием даты при передаче даты в качестве аргумента серверной хранимой процедуре SQL?

У меня есть сценарий python на Windows Server 2012, который вызывает хранимую процедуру, используя pyodb c.

. Это работает без проблем для некоторых дат (например, «2020-01-30»), но не для других дат (например, «2020-01-31»). Если хранимая процедура вызывается из SQL Server Management Studio с одной из дат, которая НЕ работает из сценария Python (например, '2020-01-31'), она работает без проблем.

1 Ответ

0 голосов
/ 02 февраля 2020

Какой тип данных является параметром? Тип данных DATETIME, как известно, довольно требователен к тому, какие строковые литералы он может правильно интерпретировать как допустимые даты.

Общее мнение заключается в том, что вам следует либо использовать другие типы данных (например, DATE, если вам нужно только дата - без временной части) - или, если это невозможно, используйте форматирование ISO-8601 для даты:

20200131
YYYYMMDD

без тире или чего-либо еще.

...