このクエリ:select EXTRACT(HOUR FROM 1435047532) as hour from TABLENAME;
このエラーを返します。 "抽出元の抽出フィールドが無効です"。
私は与えられたタイムスタンプから時間を抽出しようとしています。たぶん問題は、タイムスタンプフィールドのフォーマットがTIMESTAMPではなくNUMBERですか?タイムスタンプからのSQL抽出時間
答えて
あなたが使用してTIMESTAMP
タイプにあなたの数値秒-以来のエポックの時間を変換することができ、この
select extract(hour from (select to_date('19700101', 'YYYYMMDD')
+ (1/24/60/60) * 1435047532 from dual)) from dual
'ORA-30076:ソースの抽出に無効なフィールド'が表示されます。時間を抽出するには、 'TIMESTAMP'を使用する必要があります。 – MT0
を試してみてください:だから時間を取得するために
TIMESTAMP '1970-01-01 00:00:00' + NUMTODSINTERVAL(your_time_since_epoch, 'SECOND')
:
SELECT EXTRACT(HOUR FROM TIMESTAMP '1970-01-01 00:00:00'
+ NUMTODSINTERVAL(1435047532, 'SECOND'))
FROM DUAL;
うるう秒を処理する必要がある場合は、to create a function/package to handle thisが必要です。
私たちは既にこの議論をしました。 Unixタイムスタンプはうるう秒をサポートしていません。しかし、 '1970-01-01 00:00:00'は常にローカルではなくUTC時刻として与えられると考えるかもしれません。これはあなたの答えに対する批判ではありませんが、特定のニーズに合わせてそれを適応させるヒントです。 –
@WernfriedDomscheitタイムスタンプが特定のタイムゾーン(すなわちPST)で必要な場合、それは 'FROM_TZ(TIMESTAMP '1970-01-01 00:00:00' + NUMTODSINTERVAL(your_time_since_epoch、 'SECOND') ' UTC ')時間帯「PST」で。 – MT0
- 1. SQLタイムスタンプの抽出時間とグループby
- 2. 日付から抽出時間SQL PHP
- 3. タイムスタンプから時間部分を抽出する
- 4. POSIXctからの時間の抽出
- 5. タイムゾーン付きのタイムスタンプから現地時間を抽出します
- 6. 抽出された時間(...からの時間)
- 7. ライトニングからのタイムスタンプ抽出.sqllight
- 8. BigQuery Standart SQL:タイムスタンプから曜日名を抽出
- 9. ビデオクリップからタイムスタンプを抽出する
- 10. 日時のリストから日、時間、秒を抽出します
- 11. 時報からの抽出時間と分数
- 12. データフレームの抽出時間
- 13. 日時からのサブ抽象時間
- 14. SQL時間を半時間に変換してHH:MMのみを抽出する
- 15. タイムスタンプから24時間を控除
- 16. のC# - Googleの場所APIからの営業時間抽出
- 17. NSDateからの日付と時間の抽出 - 目的C
- 18. ルビのUUID v1からの抽出時間
- 19. Googleの距離URLから抽出する時間
- 20. Unixタイムスタンプコードから時間と分のみを抽出します。
- 21. 合計タイムスタンプのSQL Serverの間の経過時間
- 22. スパークストリーミングのカフカメッセージからタイムスタンプを抽出しますか?
- 23. テーブルから10分間隔でデータを抽出するSQLクエリ
- 24. SQLのSTRINGからのデータの抽出
- 25. ログファイルからログ時間を抽出する
- 26. ラスターブリックから時間を抽出するには?
- 27. R:srt(字幕)ファイルから時間を抽出する
- 28. DATETIME形式から時間値を抽出する
- 29. 日付時刻リストから期間を抽出するクエリ
- 30. time_tから時間を抽出するには?
1435047532は単なる数字です。日付/時刻としてどのように解釈されるかを定義する必要があります。例えば。 1600-01-01T00:00:00以来、Unixエポックから10秒間隔かそれとも数秒かですか? – Richard
@リチャード私はフォーマットがNUMBERであることを指定して編集しました。それで、あなたは正しいのです。それは、Uniix時代から数秒です。それらを正しいフォーマットに変換するには? – Caramelleamare
本当にタイムスタンプが必要なときに、なぜこのようなUNIX番号を保存していますか?私はあなたのテーブルデザインを変更して 'date'(本当にdatetime)か' timestamp'(つまり、新しい列を作成し、ist値を計算し、古い列を削除する)に切り替えることをお勧めします。 –