Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 глупая ошибка  [new]
heho
Member

Откуда: Челябинск
Сообщений: 36
всем привет я знаю что тут все элементарно но не могу сообразить почему ошибка со знаком больше(>)
вот запрос:
if exists (select datediff(mi,getdate(),cast('31.12.2016' as datetime))) > 0
begin
select '1'
end
15 ноя 16, 13:08    [19895402]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21483
А зачем это ">0"?
15 ноя 16, 13:11    [19895426]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
heho
Member

Откуда: Челябинск
Сообщений: 36
Akina,

это условие ну или как вы могли бы предложить?
15 ноя 16, 13:12    [19895434]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
Svetlanka p
Guest
heho,

if exists (	select 1 
			where datediff(mi,getdate(),cast('2016-12-31' as date))> 0
			) 
begin
select '1'
end 
15 ноя 16, 13:16    [19895462]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
heho
Member

Откуда: Челябинск
Сообщений: 36
Svetlanka p,

не подходит мне просто нужно избавиться от ошибки не более того
15 ноя 16, 13:21    [19895509]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
Sybex
Member

Откуда: Moscow
Сообщений: 119
Во-первых, exists уже возвращает логическое значение true/false для условия if, так что его нельзя ни с чем сравнивать. Во-вторых, крайне не рекомендую даты конвретить через cast, лучше через convert с указанием формата.
15 ноя 16, 13:22    [19895516]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
iap
Member

Откуда: Москва
Сообщений: 47195
heho
Akina,

это условие ну или как вы могли бы предложить?
IF '2016-12-31T00:00'>CONVERT(CHAR(16),CURRENT_TIMESTAMP,126)
15 ноя 16, 13:24    [19895536]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21483
А нафига использовать DATEDIFF, когда можно напрямую сравнить с '2016-12-31 00:01:00'?
15 ноя 16, 13:24    [19895537]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 912
heho,
1. Не нуженн экзистс
2. convert(date, '31.12.2016', 104)
15 ноя 16, 13:27    [19895553]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
iap
Member

Откуда: Москва
Сообщений: 47195
Akina
А нафига использовать DATEDIFF, когда можно напрямую сравнить с '2016-12-31 00:01:00'?
Сравнивать надо с точностью до минут! А в GETDATE() ещё и секунды с десятыми-сотыми-тысячными
15 ноя 16, 13:32    [19895583]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
Sybex
Member

Откуда: Moscow
Сообщений: 119
iap
Akina
А нафига использовать DATEDIFF, когда можно напрямую сравнить с '2016-12-31 00:01:00'?
Сравнивать надо с точностью до минут! А в GETDATE() ещё и секунды с десятыми-сотыми-тысячными

Ну так там и добавили минуту для сравнения. Там же не с 00:00:00 сравнение, а с 00:01:00.
15 ноя 16, 13:42    [19895671]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
heho
Member

Откуда: Челябинск
Сообщений: 36
Yagrus2
огромное спасибо))
15 ноя 16, 14:07    [19895909]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
iap
Member

Откуда: Москва
Сообщений: 47195
Sybex
iap
пропущено...
Сравнивать надо с точностью до минут! А в GETDATE() ещё и секунды с десятыми-сотыми-тысячными

Ну так там и добавили минуту для сравнения. Там же не с 00:00:00 сравнение, а с 00:01:00.
Так минуту надо было отнять, а не прибавить.
Если прибавлять, то к GETDATE()
В минутах:
@D-GETDATE()>=1

Отсюда
@D-1>=GETDATE()
15 ноя 16, 16:01    [19896644]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21483
iap
В минутах:
@D-GETDATE()>=1


Отсюда
@D-1>=GETDATE()

Или
@D>=1+GETDATE()
15 ноя 16, 16:10    [19896708]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6802
Akina,

а варианты с <= можно я перечислю
15 ноя 16, 16:13    [19896732]     Ответить | Цитировать Сообщить модератору
 Re: глупая ошибка  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21483
TaPaK
а варианты с <= можно я перечислю

Перечислять можно, но не имеет смысла.
А вот мой вариант смысл имеет, если на месте @D будет поле таблицы.
15 ноя 16, 16:45    [19896912]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить