2014-08-22 4 views
0

У меня есть это десятичное число 411409629.172566, и оно равно 01/14/2014. Я работаю над преобразованием некоторых данных из программного обеспечения конкурентов, а в SQLite DB даты хранятся как десятичные числа.Попытка конвертировать десятичное число в datetime либо в SQL Server, либо в C#

В этом программном обеспечении дата - это то, что я поставил выше. Я пытаюсь понять эту дату на пару дней. как мне преобразовать эту десятичную цифру в эту дату?

+0

Как десятичные цифры «411409629.172566» и «01/14/2014» могут быть равны, дайте бит более подробную информацию. – Popeye

+0

Возможно, вы захотите указать некоторые другие даты, чтобы помочь выяснить соответствие - это не стандартный формат даты SQLite для 2014-01-14, равно как и время Unix. –

+0

Существует множество способов представления DateTime с использованием десятичной дроби. Один из них обсуждается в решении, приведенном здесь http://stackoverflow.com/questions/11690372/net-convert-datetime-to-decimal – SamCoder

ответ

1

следующие печатные издания "1/14/2014" в моей консоли:

new DateTime(2001, 1, 1).AddSeconds(411409629.172566).ToShortDateString() 

или с использованием эквивалентного синтаксиса SQL сервера:

select dateadd(ss, 411409629.172566, '01-01-2001') as 'date' 

... но без лишних образцов мы не можем быть уверены, что это всегда делает правильное преобразование.

+0

Вот оно, я добавил еще 10 примеров, и все было правильно. Спасибо!!! –

+0

Отлично! пожалуйста. Не забудьте принять ответ: [Что делать, если кто-то отвечает на мой вопрос?] (Http://stackoverflow.com/help/someone-answers) – har07

0

Вы можете попробовать так:

System.DateTime dt = new System.DateTime(1970, 1, 1).AddSeconds(yourDecimalValue);