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

Откуда:
Сообщений: 135
Добрый день.

Как перевести время вида '20:30:00'(time) в минуты, потом провести сложение конвертированных минут и обратно привести к виду hh:mm:ss
13 дек 12, 10:35    [13623875]     Ответить | Цитировать Сообщить модератору
 Re: перевод в времени  [new]
progerfish
Member

Откуда:
Сообщений: 3
ильдар4,
Можно так:

declare @t1 time = '20:30:00'
declare @t2 time = '00:00:00'

declare @minutes int = datepart(mi,@t1) + datepart(hh,@t1)*60

select dateadd(mi,@minutes,@t2)
13 дек 12, 10:58    [13624027]     Ответить | Цитировать Сообщить модератору
 Re: перевод в времени  [new]
ильдар4
Member

Откуда:
Сообщений: 135
progerfish,

А если

declare @t2 time = не '00:00:00', а '20:00:00'? Нужно проссуммировать и часы и минуты
13 дек 12, 11:05    [13624077]     Ответить | Цитировать Сообщить модератору
 Re: перевод в времени  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
ильдар4
Нужно проссуммировать и часы и минуты
И что получить в результате, если сумма часов превысит 24?
13 дек 12, 11:18    [13624160]     Ответить | Цитировать Сообщить модератору
 Re: перевод в времени  [new]
ильдар4
Member

Откуда:
Сообщений: 135
invm,

25,26.. любое
13 дек 12, 11:30    [13624250]     Ответить | Цитировать Сообщить модератору
 Re: перевод в времени  [new]
progerfish
Member

Откуда:
Сообщений: 3
Если сумма часов превышает 24, то можно брать результат в текстовом виде, тип @time, для результата использовать не получится.

declare @t1 time = '20:30:00'
declare @t2 time = '20:00:00'
declare @t0 datetime = '1970-01-01 00:00:00'

declare @minutes int = datepart(mi,@t1) + datepart(hh,@t1)*60

set @minutes += datepart(mi,@t2) + datepart(hh,@t2)*60

select cast(@minutes/60 as varchar(2)) + ':' + cast(@minutes%60 as varchar(20))
13 дек 12, 11:33    [13624266]     Ответить | Цитировать Сообщить модератору
 Re: перевод в времени  [new]
invm
Member

Откуда: Москва
Сообщений: 9838
ильдар4,

Вообще-то, это арифметика даже не средней, а начальной школы: перевести два времени в секунды, сложить их, результат перевести в часы, минуты и секунды.
13 дек 12, 11:33    [13624269]     Ответить | Цитировать Сообщить модератору
 Re: перевод в времени  [new]
ильдар4
Member

Откуда:
Сообщений: 135
invm,

что-то я загнался
13 дек 12, 11:48    [13624382]     Ответить | Цитировать Сообщить модератору
 Re: перевод в времени  [new]
ильдар4
Member

Откуда:
Сообщений: 135
progerfish,

Спасибо большое
13 дек 12, 23:08    [13629209]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить