Преобразование времени эпохи Unix в секунды в SQL или .NET

Сначала позвольте мне поблагодарить вас всех за вашу помощь.

Что мне нужно, так это функция, которая принимает отметку времени EPOCH, например 1452.235687, и преобразует ее в удобочитаемую отметку времени, например «01-01-1970 00:00:00». В частности, мне нужно только время, а не дата.

Если это вообще возможно, я бы предпочел функцию .NET вместо хранимой процедуры SQL. Однако хранимая процедура SQL также будет работать нормально.

Еще раз спасибо,


person CodingIsAwesome    schedule 01.05.2010    source источник


Ответы (2)


double EpochSeconds = 1272672608.55;
DateTime time = new DateTime(1970, 1, 1).AddSeconds(EpochSeconds);
Console.WriteLine(time);

Распечатывает:

5/1/2010 12:10:08 AM

Если вам просто нужно время, вы можете использовать time.TimeOfDay.

person tzaman    schedule 01.05.2010

Вы можете создать объект DateTime с эпохой UNIX (1970-01-01) и использовать метод AddSeconds.

Демонстрация PowerShell:

PS Home:> $e = [datetime]"1970-01-01"
PS Home:> $e.AddSeconds(1452.235687).TimeOfDay

Days              : 0
Hours             : 0
Minutes           : 24
Seconds           : 12
Milliseconds      : 236
Ticks             : 14522360000
TotalDays         : 0,016808287037037
TotalHours        : 0,403398888888889
TotalMinutes      : 24,2039333333333
TotalSeconds      : 1452,236
TotalMilliseconds : 1452236
person Joey    schedule 01.05.2010