pkfox Ответов: 3

Преобразование целого числа в дату и время


Привет всем, у меня есть таблица SQL Server, где даты хранятся в виде целочисленных значений, таких как 1473861331, как преобразовать их в дату / время ?

Что я уже пробовал:

declare @mydate integer

select @mydate = 1473861331

SELECT CAST(CAST(@mydate AS VARCHAR) AS DATETIME)

But I receive this error

Conversion failed when converting date and/or time from character string.

Member 11137292

Что такое целочисленное значение? сколько дней? количество часов?

Member 11137292

Если это несколько единиц времени, вы можете добавить их к базовому datetime, хотя значение @mydate вызывает переполнение.

объявить @ mydate integer

select @mydate = 1473861331

выберите DATEADD(hour,@mydate,'1 jan 1900' )

Afzaal Ahmad Zeeshan

Почему вы не можете привести целое число к дате времени с помощью языка программирования, такого как C# или C++?

Member 11137292

хороший момент, все зависит от того, что потребляет данные. OP не ссылается на язык программирования, только на SQL.

pkfox

Извините, что я должен был быть более ясным, это должно быть сделано в хранимой процедуре SQL Server

Patrice T

Как дата должна быть закодирована в целое число ?

3 Ответов

Рейтинг:
25

manu_dhobale

Предполагая, что ваша дата-время хранится в формате Epoch &Unix Timestamp, Пожалуйста, игнорируйте, если это не так

declare @mydate integer
set @mydate = 1473861331
select DATEADD(hour,-5,(dateadd(second ,@mydate, '1/1/1970')))

--Result: 2016-09-14 08:55:31.000


pkfox

Это похоже на то , что я сделал сейчас, и, кажется, все в порядке, но почему вы делаете часть -5 ?

Рейтинг:
0

Afzaal Ahmad Zeeshan

Переходя от комментария, который я оставил на ваш вопрос, в основном SQL может позволить вам конвертировать данные из одного формата в другой, но для этого вам нужно будет научиться это делать: каждый разработчик языка SQL (Oracle, SQL Server, MySQL) имеет свои собственные реализации для этих функций. Вот почему иногда бывает трудно помочь вам, в любом случае попробуйте следующие коды, http://stackoverflow.com/questions/3855867/convert-int-to-datetime-sql[^].

Наконец, поскольку вы пометили его SQL Server (с помощью специальной запятой, возможно, намеренно?), смотрите это руководство MSDN для получения дополнительной информации CAST и CONVERT функции SQL: https://msdn.microsoft.com/en-us/library/ms187928.aspx[^]


pkfox

Это должно быть сделано в хранимой процедуре SQL Server

Afzaal Ahmad Zeeshan

См. первую ссылку и вторую для получения дополнительной информации. Я предоставил ссылки на код в SQL Server.