Задать вопрос
impressive17
@impressive17

Как сделать, чтобы дата отображалась количеством часов в БД?

У меня есть поле, отображающее разницу во времени, и оно разбивает время на часы, минут, сек. Я хочу отобразить это поле, чтобы оно показывало разницу только в часах одним float значением. Как это сделать?
  • Вопрос задан
  • 78 просмотров
Подписаться 2 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 2
@Av-IT
Разработчик и админ SQL, консультант
-- Пусть @t_start - начальная дата в прошлом, например 1111 минут назад
DECLARE @t_start AS DATETIME = DATEADD(minute, -1111, GETDATE())

-- Узнать сколько часов прошло с того времени в виде FLOAT можно так
SELECT DATEDIFF(second, @t_start, getdate()) / 3600.0
Ответ написан
Комментировать
erge
@erge
Примус починяю
если предположить, что переменная типа DATETIME, то примерно так:

-- дата начала
DECLARE @t_start AS DATETIME = DATEADD(minute, -7410, GETDATE());
-- дата конца
DECLARE @t_finish AS DATETIME = GETDATE();
-- разница между датами начала и конца в переменной типа DATETIME
DECLARE @t_diff AS DATETIME = @t_finish - @t_start;

-- разница между датами начала и конца
SELECT @t_diff;

SELECT DATEDIFF(second, DATEFROMPARTS(1900,1,1), @t_diff) / 3600.0 AS diff_h


см. https://dbfiddle.uk/?rdbms=sqlserver_2014&fiddle=9...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы