sql >> データベース >  >> RDS >> PostgreSQL

日付と時刻の列を連結してタイムスタンプを取得します

    日付 およびtime タイプ

    の場合 タイプは date そしてあなたの時間 タイプは time 、非常に簡単な解決策があります:

    SELECT EXTRACT(EPOCH FROM (day + time));
    

    dateを追加するだけです およびtime タイムスタンプ[タイムゾーンなし]を取得するには (これは、セッションのタイムゾーン設定に従って解釈されます)。

    そして、厳密に言えば、エポックを抽出すること自体はあなたの質問とは無関係です。
    日付 +時間 結果はtimestamp 、それだけです。

    文字列タイプ

    文字列リテラルまたはtextについて話している場合 / varchar 列、使用:

    SELECT EXTRACT(EPOCH FROM ('2013-07-18' || ' ' || '21:52:12')::timestamp);
    

    または

    SELECT EXTRACT(EPOCH FROM cast('2013-07-18' ||' '|| '21:52:12' AS timestamp));
    

    あなたのフォームはありません 仕事

    SELECT EXTRACT(EPOCH FROM TIMESTAMP ('2013-07-18' || ' ' || '21:52:12'));

    これはうまくいくでしょう:

    SELECT EXTRACT(EPOCH FROM "timestamp" ('2013-07-18' || ' ' || '21:52:12'));
    

    型キャストに関するマニュアルを引用します

    大胆な強調私のもの。
    その要点:最初の2つの構文バリアントのいずれかを使用してください。



    1. MySQL5.6はUnicode文字セットでビューを作成します

    2. SIGSEGV/SIGABRTおよびその仲間のためのOraclePro* C / OCIインストールハンドラ-なぜ、そしてどのように無効にするのですか?

    3. XMLAを取得してキューブ構造を分析する

    4. Javaスレッドセーフなデータベース接続