2016-08-11 16 views
0

すべての日付と時刻がtimestampという1つの列に格納されたデータベースがあります。列「タイムスタンプ」の日付/時刻の形式は、03 Aug 08:10 amです。MySQLの日付/時刻文字列をunixタイムスタンプに変換する

私は既にこの形式の500行以上を持っているので、私はこれをPHP(MySQLではなくUNIX TIMESTAMP)に変換したいと思っています:03 Aug 08:10 am。私は新しいINT列を作成しようとした

new_timestampと呼ばれ、このクエリを実行しました:

UPDATE table_name SET new_timestamp = UNIX_TIMESTAMP(timestamp); 

はしかし、それは0行が影響を受けたことを示しています。

これは複製ではありません。PHPでの変換方法を私にリダイレクトしないでください。最初の質問を読む:)

+0

は、これらのすべて2016(現在の年)の日付です:?あなたは、あなたのUNIXタイムスタンプにその有効な日付を変換し、ワンステップでこれらすべてのレコードを更新するUNIX_TIMESTAMP()機能を使用することができます

STR_TO_DATE(CONCAT('2016-', <your date/time value>), '%Y-%d %b %h:%i%p') 

+0

@Festo、申し訳ありません、削除されました。 –

+0

@ MarkBakerはい、すべての2016の日付。 –

答えて

2

UNIX_TIMESTAMP()機能あなたが最初に(年を含む)の有効/認識形式に既存の日付/時刻の形式を変換する必要があるので、正しく変換するために有効な日付/時刻の形式を必要とします。これは、MySQLのSTR_TO_DATE()関数を使用して、渡している形式を伝え、ハードコードされた年の値で連結します。これは、あなたの場合は常に2016です。

UPDATE table_name 
    SET new_timestamp = 
     UNIX_TIMESTAMP(STR_TO_DATE(CONCAT('2016-', timestamp), '%Y-%d %b %h:%i%p')); 
+1

あなたが1つを入れているのを見てうれしいです。私はあなたがそれを入れたのを見るために質問に再訪しました。乾杯。 @ –

+0

フレッド-II〜私の担当者が150Kに近づくにつれ、私はゲーム –

+0

笑、ええだけでなく担当者がときいつも素敵だと担当者を見て、私の答えを....あまり良くないのスコア追跡を考え始めています素敵な丸い数字に近づいています。私は正直に「もう、50?」それは50Kを打ったら、私は自分自身に言った...私の担当者はとても速く上げる表示されませんでしたあなたが楽しい時には、あなたは飛ぶのですか?* ;-) –