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

declare @s datetime, @e datetime
set @s = '20140101 03:58:38.157'
set @e = '20140101 04:00:00.673'
select datediff(minute, @s, @e), datediff(second, @s, @e)

set @s = '20140101 0:00:00'
set @e = '20140101 0:01:59'
select datediff(minute, @s, @e), datediff(second, @s, @e)


результат:
            
----------- -----------
2 82

(строк обработано: 1)


----------- -----------
1 119

(строк обработано: 1)

почему так?
28 май 14, 09:36    [16083448]     Ответить | Цитировать Сообщить модератору
 Re: datediff непонятный результат  [new]
Glory
Member

Откуда:
Сообщений: 104751
linav
почему так?

А как по-вашему правильно ?
28 май 14, 09:41    [16083473]     Ответить | Цитировать Сообщить модератору
 Re: datediff непонятный результат  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
linav
почему так?
DATEDIFF (Transact-SQL)
Возвращает количество пересеченных границ (целое число со знаком), указанных аргументом datepart, за период времени, указанный аргументами startdate и enddate.
28 май 14, 09:42    [16083477]     Ответить | Цитировать Сообщить модератору
 Re: datediff непонятный результат  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
linav,

DATEDIFF Возвращает количество (целое число со знаком) указанных границ datepart, пересеченных между startdate и enddate.
28 май 14, 09:44    [16083481]     Ответить | Цитировать Сообщить модератору
 Re: datediff непонятный результат  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
linav,

что не так?
28 май 14, 09:44    [16083485]     Ответить | Цитировать Сообщить модератору
 Re: datediff непонятный результат  [new]
linav
Guest
invm
linav
почему так?
DATEDIFF (Transact-SQL)
Возвращает количество пересеченных границ (целое число со знаком), указанных аргументом datepart, за период времени, указанный аргументами startdate и enddate.

спасибо! поняла
28 май 14, 09:45    [16083487]     Ответить | Цитировать Сообщить модератору
 Re: datediff непонятный результат  [new]
linav
Guest
просто пыталась получить разницу между периодами времени, но оказывается, не стоит для этого использовать datediff
простите, учусь )))

set @s = '20140101 0:01:00'
set @e = '20140101 0:02:59'
select datediff(minute, @s, @e), datediff(second, @s, @e)

set @s = '20140101 0:00:59'
set @e = '20140101 0:02:58'
select datediff(minute, @s, @e), datediff(second, @s, @e)

----------- -----------
1 119

(строк обработано: 1)


----------- -----------
2 119

(строк обработано: 1)
28 май 14, 09:55    [16083519]     Ответить | Цитировать Сообщить модератору
 Re: datediff непонятный результат  [new]
Glory
Member

Откуда:
Сообщений: 104751
linav
просто пыталась получить разницу между периодами времени,

Разница в разных единицах измерения она разная.
Вы еще в годах не меряли разницу.
С учетом того, что года имеют разную продолжительность.
28 май 14, 09:56    [16083530]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить