基本上我使用的是MySQL gem for Ruby,我没有合理的日期比较支持。 Mysql::Time
类只给了我像年,月,秒等accessor方法。我可以做更好的日期比较,如果我可以把它变成一个Ruby DateTime对象。如何将MySQL的日期时间字段转换为可以传递给DateTime.jd
的Julian日期编号?我怎样才能让mysql输出一个DateTime到Julian天数?
2
A
回答
1
2
你可以使用MySQL的TO_DAYS
功能来获得日期为一个整数天数从年初的零(和只添加适当的偏移,以一个Julian Day number),或者你可以使用UNIX_TIMESTAMP
函数来获得的整数倍自1970-01-01 00:00:00 UTC以来的秒数。
+0
“适当的偏移”是1721059.5 – dan04 2010-07-04 05:00:35
+0
@ dan04,我认为Ruby希望它是一个*整数*,没有0.5,但我不确定。一些实验可能是为了。 – 2010-07-04 11:27:47
1
class Mysql::Time
def to_datetime
DateTime.civil(year,month,day,hour,minute,second)
end
end
4
用途:
TO_DAYS(col)+1721060
要转换为Julian日期。
和:
FROM_DAYS(col-1721060)
从Julian日期转换。
(我使用它始于午夜,因为它更实用的年代公历日期。)
相关问题
- 1. 我怎样才能得到一个县的天气数据?
- 2. 我怎样才能让
- 3. 我怎样才能变出一个班?
- 4. 我怎样才能让我的javacode输出为json
- 5. 我怎样才能让我的GUI输出结果?
- 6. 我怎样才能让这个更好
- 7. 我怎样才能在MySQL
- 8. 我怎样才能在MYSQL
- 9. 我怎样才能在MySQL
- 10. 我怎样才能让一个圆点出现在标签中?
- 11. 我怎样才能得到一个TD
- 12. 我怎样才能得到一个RejectedExecutionException
- 13. 我怎样才能得到一个PortletRequest
- 14. 我怎样才能找到一个DataTable
- 15. 我怎样才能让我的autosuggest与mysql一起工作
- 16. 我怎样才能让这样的
- 17. 我怎样才能每天迭代一个数组?
- 18. 我怎样才能让这个MySQL查询2个表
- 19. 我怎样才能让一个跨度文本溢出,像输入
- 20. 我怎样才能得到这个输出?
- 21. 我怎样才能得到这个输出?
- 22. 我怎样才能让CMake让“干净”只是一个目标?
- 23. 我怎样才能让这个程序打印出用户输入的数字?
- 24. jquery:我怎样才能让一个数字元素可折叠?
- 25. 我怎样才能让pip安装包一个接一个?
- 26. 我怎样才能得到一个输出插入数据使用从
- 27. 我怎样才能输出每行6个Sql数据
- 28. 我怎样才能让mysql从数据库表中打印行
- 29. 我怎样才能得到一个MySQL表上的字段?
- 30. 我怎样才能得到
小心使用DateTime.jd因为我已经发现,它可能不是已经打算与日期时间子类中使用的的日期。仅对Date类是正确的。为了显示这个尝试DateTime.jd(2455145)。然后插入相同的数字到这里http://aa.usno.navy.mil/data/docs/JulianDate.php你有没有得到正确的时间?所有没有小数的Julian Day数字都应该显示12:00这个使用DateTime对象进行Ruby转换的jd可能是一个bug。如果是这样的话,请有人报告,因为我不知道该从哪开始。谢谢!只是我使用DateTime.jd()的两分钱。 – 2013-11-16 12:38:12
我可以从http://apidock.com/ruby/DateTime/jd/class证实这一点但是,由于他们展示了一个解决方案,我将收回我对该错误的评论。它似乎还是错误的。对于Date.ajd()应该有一个像Date一样的方法,您可以发送一个Julian日数字,并且仍然可以获得时间。 http://apidock.com/ruby/v1_9_3_392/Date/jd/class我有些恼火,他们总是使用省略号来敲定它。必须做你自己的事情才能真正看到它。并注意.ajd()不提供适当的转换,以包含数字DateTime.ajd(2455145.5),因为我认为这是正确的。 – 2013-11-16 13:15:39