という名前の列に [02/Jun/2016:23:58:30 +0000]
という形式の日付/時刻文字列を含むテーブルがあります。to_date()で文字列を日付に変換する
私はselect文でto_date(datetimestamp, 'DD/Mon/YYYY:HH24:MM:SS')
を使用してこれを日付に変換しようとしていますが、フォーマットが無効です。それがUTCビットか、それが何かを混乱させているのかどうかは分かりません。正しい構文は何ですか?
ありがとうございます!
という名前の列に [02/Jun/2016:23:58:30 +0000]
という形式の日付/時刻文字列を含むテーブルがあります。to_date()で文字列を日付に変換する
私はselect文でto_date(datetimestamp, 'DD/Mon/YYYY:HH24:MM:SS')
を使用してこれを日付に変換しようとしていますが、フォーマットが無効です。それがUTCビットか、それが何かを混乱させているのかどうかは分かりません。正しい構文は何ですか?
ありがとうございます!
to_timestamp
はタイムゾーン情報を許可しないため、少し複雑です。私はこのクエリが出ている
:
WITH d(part) AS
(SELECT regexp_matches(
'02/Jun/2016:23:58:30 +0000',
'^([^ ]*) ([-+]?\d\d)(\d\d)$'
)
)
SELECT
CAST (to_timestamp(d.part[1], 'DD/Mon/YYYY:HH24:MI:SS')
AT TIME ZONE (d.part[2] || ':' || d.part[3])
AS timestamp with time zone)
AS converted
FROM d;
converted
------------------------
2016-06-02 21:58:30+02
(1 row)
(。私はタイムゾーンUTC + 02時午前)
select to_date('02/Jun/2016:23:58:30 +0000', 'DD/Mon/YYYY:HH24:MI:SS');
| to_date |
|------------|
| 2016-06-02 |
時間部分とタイムゾーンが失われますので、もっと頑張ってください。 –
私は知っていますが、 –
それはTO_DATE( '2016年6月2日午後11時58分(ステートメントでなければなりません。 30 '、' yyyy/mm/dd hh24:mi:ss ')); – unixmiah
@unixmiah nope :(まだ無効なフォーマットエラーが表示される – Nicros
次のようなものを試してみてください:SELECT TO_CHAR(dateColumn、 'YYYY-MM-DD HH24:MI:SS')テーブルから: – unixmiah