3

理由は聞かないでください (私の手に負えないことです)、日付は varchar(125) の MySQL DB に RFC-822 として保存されています。

RFC-822 =Mon Jun 13 2011 11:30:00 GMT-0400 (EDT)またはMon Jun 13 17:00:00 EDT 2011

その形式で日付で並べ替える方法はありますか、少なくとも日付を YYYYMMDD または Unix 時間として取り出す方法はありますか?

4

1 に答える 1

1

一部のブードゥー教は、最初の形式で役立ちます。

SET @dt = 'Mon Jun 13 2011 11:30:00 GMT-0400 (EDT)';

SELECT    
CONVERT_TZ(
  -- Parse all, but timezone
  STR_TO_DATE(@dt, '%a %b %e %Y %H:%i:%s'),

  -- Parse timezone to '+NN:NN' format
  INSERT(SUBSTRING_INDEX(SUBSTRING_INDEX(@dt, 'GMT', -1), ' ', 1), 4, 0, ':'),

  -- Our unified timezone
  '+00:00'
);

-- Result: 2011-06-13 15:30:00

CONVERT_TZEDT のような略語もサポートしていますが、すべてではありません。

于 2011-06-13T17:58:44.053 に答える