SQL: datetime или varchar как тип данных параметра для хранимой процедуры - PullRequest
0 голосов
/ 27 октября 2009

У меня есть хранимая процедура SQL-сервера, которая будет принимать дату в качестве входного параметра для построения запроса. Так какой тип данных я должен использовать для параметра при определении хранимой процедуры.

1 : create procedure TestProcedure(@startDate datetime)
        and
2 :   create procedure TestProcedure(@startDate nvarchar(15))

Есть ли какое-то преимущество, я использую datetime перед varchar с точки зрения производительности

Ответы [ 2 ]

6 голосов
/ 27 октября 2009

Да, всегда используйте тип datetime. Это более точно. Тип datetime также всегда составляет 8 байтов, поэтому его размер меньше 15 символов.

Затем внешний интерфейс отвечает за решение культурных / региональных проблем, таких как упорядочение полей компонента MDY, DMY или YMD. (если база данных работает под американским языком, а пользователь находится в Великобритании, означает ли «3/4/2009» 3 апреля или 4 марта?)

1 голос
/ 27 октября 2009

Если вы знаете, что через параметр будут проходить только даты, лучше использовать соответствующий тип данных, так как он меньше, и сравнения можно проводить быстрее. Это также предотвращает предоставление недопустимых значений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...