13000行のデータベースがあります。各行には、現在この形式になっている「日付」列が含まれています(例)2012-09-01 17:53:28
:。ただし、これらをTIMESTAMPにします。
'date'という名前のすべての列をすべての行の日付からタイムスタンプに更新するには、どのクエリを実行する必要がありますか?
ありがとう
ALTER TABLEコマンドを使用して、ある型から別の型に変換するのは非常に簡単です。
ALTER TABLE table_name CHANGE old_date new_timestamp TIMESTAMP
大量のデータと多数のインデックスがある場合、このプロセスが完了するまでに時間がかかる場合があります。
TIMESTAMP
よりも範囲がはるかに制限されているため、これらをタイプに切り替えたい理由がわかりませんDATETIME
。相違点は文書化されており、知っておくことが重要です。
何を求めているのか不明です。次のデータ型が存在します: date
、time
、datetime
およびtimestamp
。そしてUNIX_TIMESTAMP
、1970-01-01 からの秒数である がありますが、それはあなたが求めているものではないと思います。
これを読むことをお勧めします。
DATETIME 型は、日付と時刻の両方の部分を含む値に使用されます。MySQL は、DATETIME 値を「YYYY-MM-DD HH:MM:SS」形式で取得して表示します。サポートされている範囲は「1000-01-01 00:00:00」から「9999-12-31 23:59:59」です。
TIMESTAMP データ型は、日付部分と時刻部分の両方を含む値に使用されます。TIMESTAMP の範囲は、「1970-01-01 00:00:01」UTC から「2038-01-19 03:14:07」UTC です。
列を変換する場合は、次のようにしますdate
。
ALTER TABLE yourTable MODIFY COLUMN yourDateColumn TIMESTAMP;
UNIX_TIMESTAMP()関数を使用して、クエリを実行するときにタイムスタンプとして値を返すことができます。そのようです:
mysqli_query("select UNIX_TIMESTAMP(date) as date from table");
SELECT UNIX_TIMESTAMP('2012-09-01 17:53:28');