У меня есть целочисленный столбец в MySql, хранящий DateTime.Ticks.Преобразование DateTime.Ticks в MySQL DateTime в запросе
Один тик представляет собой сто наносекунд или одну десятую миллионную долю секунды. В миллисекундах насчитывается 10 000 тиков.
Значение этого свойства представляет количество 100-наносекундных интервалов, прошедших с 12:00:00 полночь, 1 января, 0001
Как я могу преобразовать это DateTime в запросе? Я пробовал много вещей, но не могу заставить его работать.
Для клещи 634128921500016150 я надеюсь получить MySQL DateTime «2010-06-23 12:06:50»
Я бы считал, что должно работать, но это дает «4009-06-22 12 : 15: 50,001600' . Кажется, что это к 2001 году, 1 день и 9 минут ... Если годы и дни согласованы, я могу исправить это вручную, но минуты кажутся немного странными.
SELECT DATE_ADD('0000-01-01 00:00:00',
INTERVAL 634128921500016150/10000000 SECOND_MICROSECOND);
Я попытался добавить больше нулей, но он никогда не совпадает: |
Я также попытался предложение Jon тарелочкам, но это дает почти тот же результат (некоторую долю секунды отличается)
Спасибо, но это дает тот же результат. Я обновил свой пост с более подробной информацией. – simendsjo
@simendsjo: Я сделал редактирование - вы должны использовать 0001 вместо 0000. Я знаю, что звучит так, как будто это будет только 1 год разницы вместо 2000, но * возможно * 0 означает что-то особенное в mysql? –
Большое спасибо, работает как шарм! base_ticks должен быть с 2001 года вместо 1001. «0000-00-00 00:00:00» - особое значение для пустой даты в mysql, как DateTime.MinValue – simendsjo