Преобразование времени эпохи Unix в секунды в SQL или .NET - PullRequest
0 голосов
/ 01 мая 2010

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 01 мая 2010
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.

0 голосов
/ 01 мая 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
...