3

13000行のデータベースがあります。各行には、現在この形式になっている「日付」列が含まれています(例)2012-09-01 17:53:28:。ただし、これらをTIMESTAMPにします。

'date'という名前のすべての列をすべての行の日付からタイムスタンプに更新するには、どのクエリを実行する必要がありますか?

ありがとう

4

4 に答える 4

6

ALTER TABLEコマンドを使用して、ある型から別の型に変換するのは非常に簡単です。

ALTER TABLE table_name CHANGE old_date new_timestamp TIMESTAMP

大量のデータと多数のインデックスがある場合、このプロセスが完了するまでに時間がかかる場合があります。

TIMESTAMPよりも範囲がはるかに制限されているため、これらをタイプに切り替えたい理由がわかりませんDATETIME。相違点は文書化されており、知っておくことが重要です。

于 2012-09-13T14:38:40.927 に答える
3

何を求めているのか不明です。次のデータ型が存在します: datetimedatetimeおよび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;
于 2012-09-13T14:36:29.737 に答える
1

UNIX_TIMESTAMP()関数を使用して、クエリを実行するときにタイムスタンプとして値を返すことができます。そのようです:

mysqli_query("select UNIX_TIMESTAMP(date) as date from table");
于 2012-09-13T14:29:22.563 に答える
1
SELECT UNIX_TIMESTAMP('2012-09-01 17:53:28');
于 2012-09-13T14:25:17.443 に答える