-1

RFC2822形式の文字列があり、適切なタイムスタンプをUTC時間で挿入したいと思います。

今まで私は思いついた

DATE_FORMAT(?, "%a, %d %b %Y %T -0700")

しかし、問題はTZオフセット-0700であり、フォーマット指定子がないようです。

そのようなタイムスタンプをデータベースに適切に挿入するにはどうすればよいですか?

アプリケーション側での処理は避けたい。

アップデート

SELECT CONVERT_TZ(STR_TO_DATE(SUBSTRING('Mon, 15 Aug 2005 15:52:01 +0200',1,25), '%a, %d %b %Y %T'),CONCAT(SUBSTRING('Mon, 15 Aug 2005 15:52:01 +0200',27,3), ':', SUBSTRING('Mon, 15 Aug 2005 15:52:01 +0200',30,2)),'+00:00') AS conv;

文字列を繰り返す代わりに変数を使用して「きれいに」それを行う方法はMon, 15 Aug 2005 15:52:01 +0200

4

1 に答える 1

0
SET @a:='Mon, 15 Aug 2005 15:52:01 +0200';
SELECT
  CONVERT_TZ(
    STR_TO_DATE(SUBSTRING(@a,1,25), '%a, %d %b %Y %T'),
    CONCAT(SUBSTRING(@a,27,3), ':', SUBSTRING(@a,30,2)),
    '+00:00'
  )
AS conv;

それが私が答えと呼んでいるものです。

于 2012-11-26T19:35:36.543 に答える