• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:タイムスタンプを秒数で取得したい)

タイムスタンプを秒数で取得する方法

このQ&Aのポイント
  • DB初心者のため、PostgreSQL V.7.3.2 + PHPを使用しています。T_TIMEテーブルには、日付を格納したTARGET_DATEと時刻を格納したTARGET_TIMEフィールドがあります。このテーブルからタイムスタンプを取得したいが、現在のSQL文では書式化された文字列のため比較が困難です。タイムスタンプを1970年からの秒数で取得する方法を教えてください。
  • DB初心者のため、PostgreSQL V.7.3.2 + PHPを使用しています。T_TIMEテーブルには、日付を格納したTARGET_DATEと時刻を格納したTARGET_TIMEフィールドがあります。現在のSQL文では、書式化された文字列のため時刻の比較が困難です。タイムスタンプを秒数で取得する方法を教えてください。
  • PostgreSQL V.7.3.2 + PHPを使用しているDB初心者です。T_TIMEテーブルには、日付を格納したTARGET_DATEと時刻を格納したTARGET_TIMEフィールドがあります。現在のSQL文では、書式化された文字列のため時刻の比較ができません。タイムスタンプを秒数で取得する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • in_dow
  • ベストアンサー率77% (7/9)
回答No.1

PostgreSQL 8.0.2 文書 -> 8.5.1.5. 特殊な値より (以前のドキュメント7.3.0を参照してもこの項目、構文は存在していたので有効です) 入力文字列 有効な型 説明 epoch date, timestamp 1970-01-01 00:00:00+00 (Unixシステム時間におけるゼロ) 今回の場合は、問い合わせの時に若干計算式を記述してやる必要があるようです select EXTRACT(epoch FROM TARGET_DATE)+ (EXTRACT(HOUR FROM TARGET_TIME)*60+ EXTRACT(MINUTE FROM TARGET_TIME))*60+ (EXTRACT(MILLISECONDS FROM TARGET_TIME)/1000) from T_TIME; #問い合わせに対する負荷が高いので、もしかしたら、新しいカラムを用意した方がいいかもしれません #さらなる情報は参考URL(ドキュメント)を参照して下さい テストrun: select EXTRACT(epoch FROM CURRENT_DATE)+ (EXTRACT(HOUR FROM CURRENT_TIME)*60+ EXTRACT(MINUTE FROM CURRENT_TIME))*60+ (EXTRACT(MILLISECONDS FROM CURRENT_TIME)/1000); クエリー全体 実行時間:10 ms. データ検索 実行時間:10 ms.

参考URL:
http://www.postgresql.jp/document/pg721doc/user/functions-datetime.html
catecholamine
質問者

お礼

大変ありがとうございます。 お礼が遅れて済みませんでした。半ばあきらめているところでした。 おかげでうまく計算させることができました。 参考URLも見て勉強したいと思います。

関連するQ&A