如何将JDBC:Oracle Date转换为Ruby的DateTime?
|
我终于弄清楚了如何通过JDBC和Sequel将我的Sinatra应用程序连接到现有的Oracle数据库。
现在我的问题是我想将Oracle DB中的Date字段显示为带有时间的Date。
Oracle的快速日期定义:
有效日期范围为4712年1月1日
公元前至公元9999年12月31日。的
确定默认格式
由NLS_DATE_FORMAT明确
参数或由
NLS_TERRITORY参数。大小是
固定为7个字节。该数据类型
包含日期时间字段YEAR,
MONTH,DAY,HOUR,MINUTE和SECOND。
它没有小数秒或
时区。
在Ruby中,我想这样做:
row_added.strftime(\'%d.%B %Y %H:%M:%S\') => 09.May 2011 00:00:00
但是Ruby Date没有小时或分钟。
相反,我必须在SQL级别上执行此操作才能看到时间:
to_char(row_added, \'DD.MM.YY HH24:MI:ss\') => 09.05.11 08:33:31
它正在按预期方式工作,但不应该是最佳解决方案。
谁能告诉我如何让Ruby Sequel将其转换为Time或DateTime值而不是Date?
没有找到相关结果
已邀请:
2 个回复
赣借
和
类转换为ruby
,并将
类转换为ruby
(https://github.com/jeremyevans/sequel/blob/master/lib/sequel/adapters/jdbc.rb#L579)。如果Oracle使用“ 5”子类但包含时间信息,则说明这样做有误,因此应该将其“ 2”子类化。 无论如何,要解决此问题,您需要在
中添加
方法(https://github.com/jeremyevans/sequel/blob/master/lib/sequel/adapters/jdbc/oracle.rb)无论Oracle特定的日期类型是什么。如果您可以正常运行,请提交补丁。
慷祈霖黑