Pages

2017年3月13日月曜日

PostgreSQLのEXTRACT関数の進展

 こんにちは、いつもの新人です。

 「EXTRACT(EPOCH FROM [時刻])」の構文でマイクロ秒を含んだUNIXTIMEを取得するには、1度マイクロ秒と切り離してみる必要があるようです。

 そのために使うのがDATE_TRUNC関数です。これは、日付の値をどの精度まで表示するのかを選択し、選択したもの以下の情報は0(月、日の場合は1)として出力する関数です。例えば、hour(時)を選択すると何年何月何日何時までを正確に表示し、後の情報は0を出力します。

SELECT EXTRACT(EPOCH FROM DATE_TRUNC('second',[マイクロ秒を含んだTIMESTAMP])),TO_CHAR([マイクロ秒を含んだTIMESTAMP],'US') FROM
 [テーブル];

 上のようなSELECT文の場合、マイクロ秒を含まない日時の情報をUNIXTIMEにしたものと、マイクロ秒のみの値が出力されます。

 出力されたその2つを小数点で繋げるようにパラメータを設定すれば、TIMESTAMPと同じマイクロ秒情報のUNIXTIMEを取得できます。

0 件のコメント:

コメントを投稿