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

Откуда: Київ
Сообщений: 10428
Как получить результат в читабельном виде, т.е. 00:00:02 (ЧЧ:ММ:СС) вместо целого значения секунд

declare @start datetime

select @start = getdate()
waitfor delay '00:00:02'
select datediff(s, @start, getdate()) seconds
10 апр 13, 11:15    [14160563]     Ответить | Цитировать Сообщить модератору
 Re: Как получить DATEDIFF в формате ЧЧ:ММ:СС?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
меня разбанили в гугле

DECLARE	@START_DATE	DATETIME
DECLARE	@END_DATE	DATETIME--	Set the timeframe variables
SET		@START_DATE = '2011-01-01 16:00:00'
SET		@END_DATE =   '2011-01-01 22:47:22'--	Use datediff to show the results in the
--	HH:MM:SS format
SELECT    CONVERT(varchar(6), DATEDIFF(second, @START_DATE, @END_DATE)/3600)
+ ':'
+ RIGHT('0' + CONVERT(varchar(2), (DATEDIFF(second, @START_DATE, @END_DATE) % 3600) / 60), 2)
+ ':'
+ RIGHT('0' + CONVERT(varchar(2), DATEDIFF(second, @START_DATE, @END_DATE) % 60), 2) AS 'HH:MM:SS'
10 апр 13, 11:17    [14160576]     Ответить | Цитировать Сообщить модератору
 Re: Как получить DATEDIFF в формате ЧЧ:ММ:СС?  [new]
хмммм
Guest
Winnipuh,
declare @start datetime

select @start = getdate()
waitfor delay '00:00:02'
select convert(char(8),getdate()-@start,108) seconds

не?
10 апр 13, 11:20    [14160602]     Ответить | Цитировать Сообщить модератору
 Re: Как получить DATEDIFF в формате ЧЧ:ММ:СС?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31949
Winnipuh
Как получить результат в читабельном виде, т.е. 00:00:02 (ЧЧ:ММ:СС) вместо целого значения секунд

declare @start datetime

select @start = getdate()
waitfor delay '00:00:02'
select datediff(s, @start, getdate()) seconds
Если период не больше суток, то можно так:
declare @start datetime

select @start = getdate()
waitfor delay '00:00:02'
select datediff(s, @start, getdate()) seconds

select convert(varchar, dateadd(s, datediff(s, @start, getdate()), 0), 108)
10 апр 13, 11:21    [14160606]     Ответить | Цитировать Сообщить модератору
 Re: Как получить DATEDIFF в формате ЧЧ:ММ:СС?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
так оптимальнее, спасибо ;-)
10 апр 13, 11:35    [14160696]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить