Как я могу получить mysql для вывода даты от DateTime до юлианского дня? - PullRequest
2 голосов
/ 03 июля 2010

В основном я использую гем MySQL для Ruby , и у меня нет разумной поддержки для сравнения дат.Класс Mysql::Time дает мне только методы доступа, такие как год, месяц, секунда и т. Д. Я мог бы сделать намного лучшее сравнение дат, если бы мог превратить это в объект Ruby DateTime.Как преобразовать поле DateTime в MySQL в юлианский номер дня, который можно передать в DateTime.jd?

Ответы [ 4 ]

5 голосов
/ 09 июля 2013

Использование:

TO_DAYS(col)+1721060

Для преобразования в юлианскую дату.

И

FROM_DAYS(col-1721060)

конвертировать из юлианской даты.

(я использую хронологическую юлианскую дату, которая начинается в полночь, потому что она более полезна.)

2 голосов
/ 04 июля 2010

Вы можете использовать функцию MySQL TO_DAYS, чтобы получить дату в виде целого числа дней, начиная с нуля года (и просто добавить соответствующее смещение, чтобы иметь Юлианский день ), или вы можете использовать функцию UNIX_TIMESTAMP, чтобы получить целое число секунд с 1970-01-01 00:00:00 UTC.

1 голос
/ 04 июля 2010
class Mysql::Time
  def to_datetime
    DateTime.civil(year,month,day,hour,minute,second)
  end
end
1 голос
/ 04 июля 2010

Попробуйте использовать Ruby / DBI вместо непосредственного использования гема MySQL.Ruby / DBI должен позаботиться о преобразовании в стандартные классы Ruby для вас автоматически, и в качестве дополнительной бонусной функции, если вы когда-либо меняете СУБД, на которой вы работаете, использование DBI не меняется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...