Можно ли как-то объявить год в SQL Server 2008? - PullRequest
2 голосов
/ 19 апреля 2011

Я хочу указать год, такой как:

DECLARE @Year varchar

и заполнить его чем-то вроде:

select @Year = year('2011')

Могу ли я сделать это или я должен создать целую ДАТУ изаполнить его информацией о наполнителе?

Я хочу иметь год, пригодный для повторного использования, который я могу добавить в свои запросы.

Заранее благодарен за помощь и предложения.

Я выполнил этот поиск Google , а также этот поиск Google

Я думаю, что я могу найти решение, но, если есть быстрыйКстати, пожалуйста, дайте мне знать.Я обновлю, если выясню это.

Я считаю, что мне нужно добавить некоторую дополнительную информацию для пояснения.

Мне нужна эта переменная, чтобы выполнить некоторые сравнения дат по датам, которые находятся в моембаза данных.Я хочу проверить, чтобы убедиться, что переменная @Year равна году даты в базе данных.

YEAR(EntryDate) = YEAR('2011')

или

мой новый метод

YEAR(EntryDate) = YEAR(cast(@year as varchar))

Это часть моего оператора where в моем запросе.

1 Ответ

6 голосов
/ 19 апреля 2011

1 - Зачем делать это varchar вместо int?Вы хотите 2011, а не Two thousand and eleven верно?

2 - Вы всегда можете использовать функцию YEAR(GETDATE()), чтобы получить текущий год.

Синтаксис для числового значения будет

DECLARE @Year int = YEAR(GETDATE())

РЕДАКТИРОВАТЬ:

Пример того, почему плохо использовать varchar для сравнения чисел:

С int:

21 <2010 = ИСТИНА </strong>

С varchar:

21 <2010 = ЛОЖЬ </strong>

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