Показать сообщение отдельно
Старый 06.07.2006, 12:55   #2  
Gustav is offline
Gustav
Moderator
Аватар для Gustav
SAP
Лучший по профессии 2009
 
1,858 / 1152 (42) ++++++++
Регистрация: 24.01.2006
Адрес: Санкт-Петербург
Записей в блоге: 19
Ну, это же секунды в течение суток, т.е. 24 часа * 60 минут * 60 секунд = 86400 секунд.
Соответственно, целое значение пробегает в диапазоне от 0 до 86399.

Или Вам какая-то "фирменная" функция нужна SQL-ная для такого преобразования?


P.S. Например, в Oracle значение времени 70000 секунд может быть представлено строкой "19:26:40" в результате следующей комбинации функций:
Код:
SELECT TO_CHAR( TO_DATE(70000, 'SSSSS'), 'HH24:MI:SS' ) FROM DUAL
А в SQL Server это можно сделать как-то вот так:
Код:
SELECT CONVERT( varchar, DATEADD(second, 70000, 0), 8 )
P.P.S. А если Вам надо в SQL-запросе иметь дату и время в одном "флаконе", то их можно просто сложить в одном поле запроса:
Код:
SELECT 
  CreatedDate,
  CreatedTime,
  CreatedDate + CreatedTime/86400. AS CreatedDateTime
FROM VendTable
В дополнение к примеру выше с 70 тыс. секунд следующие два оператора возвращают настоящие (не текстовые) дату+время 19:26:40 1-го июля 2006 года:
Код:
для Oracle:
SELECT TO_DATE('01.07.06', 'DD.MM.YY') + 70000 / 86400. FROM DUAL
 
для SQL Server:
SELECT CONVERT(datetime, '01.07.06', 4) + 70000 / 86400.

Последний раз редактировалось Gustav; 06.07.2006 в 14:43.