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

Откуда:
Сообщений: 53
Коллеги, привет.

Столкнулся достаточно тривиальной задачей.
Я её решил datediff в секундах и символы после запятой/100*60. Далее разложил это до формата 00:00:00 и закастил в тайм.

Но это шайтан труба какая-то. Мб есть более простое решение задачи?

чтобы проще достичь результата
например отняв от датавремя1 '2015-09-28 10:30:20' дату время '2015-09-28 10:20:10' получить 00:10:10.
23 мар 18, 13:43    [21280714]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
есть тип данных time, а то что вы пишите - это всёго лишь визуальное представление
23 мар 18, 13:45    [21280729]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
svanrus
Member

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

Спасибо. Но вопрос был не в том как называется тип данных, а как добиться конечного результата более верным методом.
23 мар 18, 13:50    [21280748]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
вы не написали чего вы добиваетесь, нет примера вашего запроса
23 мар 18, 13:51    [21280755]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
select convert(varchar(8),convert(time, SomeDateTime)) as [string time]
from SomeTable
23 мар 18, 13:54    [21280767]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
может вы короче хотите?

convert(varchar(8), getdate(), 14) as [14]
23 мар 18, 13:59    [21280783]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
можно ещё так:

convert(varchar, getdate(), 8) as [8]


ps
вариантов полно, задача ваша только не ясна
23 мар 18, 14:02    [21280793]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 30773
svanrus
Konst_One,

Спасибо. Но вопрос был не в том как называется тип данных, а как добиться конечного результата более верным методом.
Ээээ, так вопрос какой? Вы сначала спрашиваете, как "Показать чч.мм.сс из разницы между датавремя1 и датавремя2"
А потом оказывается, что вы хотите получить данные типа тайм

А это две совсем разные задачи.

Скажем, для второй задачи решение:
declare @датавремя1 datetime = '2015-09-28 10:30:20'
declare @датавремя2 datetime = '2015-09-28 10:20:20'
declare @time time

select @time = @датавремя1 - @датавремя2
select @time


А для первой задачи можно преобразовать в строку из предыдущего решения.
23 мар 18, 14:04    [21280800]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
Владислав Колосов
Member

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

получите разницу в секундах, потом правилами арифметики найдете часы, минуты и остатки секунд.
23 мар 18, 14:05    [21280803]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
TaPaK
Member

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

этот вопрос теперь каждый день?
https://www.sql.ru/forum/1288309/preobrazovanie-chisel-vremeni
23 мар 18, 14:06    [21280805]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
да, видимо ему это и надо. вот у тебя интуиция =)
TaPaK
svanrus,

этот вопрос теперь каждый день?
https://www.sql.ru/forum/1288309/preobrazovanie-chisel-vremeni
23 мар 18, 14:09    [21280824]     Ответить | Цитировать Сообщить модератору
 Re: Показать чч.мм.сс из разницы между датавремя1 и датавремя2  [new]
svanrus
Member

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

Спасибо.

Мой вариант был такой))

declare @t table (dt1 datetime, dt2 datetime)
insert into @t values
('2015-09-28 10:30:20','2015-09-28 10:20:10')





select

'00'+':'+substring(
cast((cast(datediff(second,dt2,dt1)as numeric)/60)as varchar)
,1,2)+
':'+
cast(convert(numeric(2,0),round((cast(substring(
cast((cast(datediff(second,dt2,dt1)as numeric)/60)as varchar)
,4,2)as numeric)/100*60),0))as varchar)


as tst from @t
23 мар 18, 14:44    [21281007]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить