Sinatra アプリを JDBC と Sequel 経由で既存の Oracle データベースに接続する方法をついに見つけました。
今私の問題は、Oracle DB の Date フィールドを Date with time として表示したいということです。
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 でこれを Date ではなく Time または DateTime 値に変換する方法を誰か教えてもらえますか?