Эквивалент? Нет, но почему? - PullRequest
0 голосов
/ 14 января 2009

T-SQL:

1 (ANSI): convert(varchar(10),@DueDate, 102) < convert(varchar(10),getdate(), 102)

2 (США): convert(varchar(10),@DueDate, 101) < convert(varchar(10),getdate(), 101)

Обратите внимание, что они будут давать разные результаты, если учитывать год.

Почему?

Какая разница? Почему оператор не учитывает год при использовании # 2?

1 Ответ

4 голосов
/ 14 января 2009

Что вы пытаетесь сделать? Вы сравниваете varchars, там. Посмотрите на вывод из этих утверждений:

print convert(varchar(10), getdate(), 101)
print convert(varchar(10), getdate(), 102)

Это печатает это:

01/14/2009
2009.01.14

Сравнение первой формы действительно будет проверкой, чтобы увидеть, меньше ли месяц одной даты, чем месяц текущей даты.

Есть ли причина, по которой вам нужно конвертировать даты в varchar? Почему бы не сравнить их напрямую?

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