Mysql は、単純な個人アプリケーションから大規模なエンタープライズ レベルのデータ ウェアハウスや商用 Web サイトに至るまで、さまざまなタイプのデータ収集に適したリレーショナル データベース管理システムです。 Mysql では、タイムスタンプ (Timestamp) は非常に一般的なデータ型であり、タイムスタンプのストレージとクエリで広く使用されています。
しかし、実際のアプリケーションでは、データベース内のタイムスタンプを変更する必要がある状況に遭遇することがあります。たとえば、特定のレコードのタイムスタンプを現在のタイムスタンプまたは指定されたタイムスタンプに変更する必要があるなどです。では、Mysql でタイムスタンプを変更するにはどうすればよいでしょうか?この記事では、次の点について詳しく説明します。
1. Mysql タイムスタンプの概要
Mysql では、タイムスタンプ (Timestamp) は、イベントが発生したときの特定の時刻を表すデータ型です。データの作成時間と更新時間、その他の時間関連の操作を記録するためによく使用されます。
Mysql のタイムスタンプには、Unix タイムスタンプと Mysql タイムスタンプの 2 つの異なる形式があります。
Unix タイムスタンプは、1970 年 1 月 1 日の 0:00:00 から現在時刻までの経過秒数を指します。このタイムスタンプの形式は、Mysql では Unix タイムスタンプと呼ばれます。 Mysql の組み込み UNIX_TIMESTAMP() 関数を使用して、datetime 型の時刻データを Unix タイムスタンプに変換できます (例:
SELECT UNIX_TIMESTAMP(NOW()); // 現在の Unix タイムスタンプを取得します
Mysql タイムスタンプは、YYYY-MM-DD HH:MI:SS 形式で表されるタイムスタンプです。 Mysql の組み込み NOW() 関数を使用して現在のタイムスタンプを取得できます (例:
SELECT NOW(); //現在の Mysql タイムスタンプを取得します
さらに、Mysql は以下の機能も提供します) FROM_UNIXTIME() この関数は、例: Unix タイムスタンプを Mysql タイムスタンプに変換できます:
SELECT FROM_UNIXTIME(1602590500); //Unix タイムスタンプ 1602590500 を Mysql タイムスタンプに変換します
2. タイムスタンプを現在のタイムスタンプに変更します。タイムスタンプ
データベース内のレコードのタイムスタンプを現在のタイムスタンプに変更する必要がある場合があります。 Mysql では、NOW() 関数を使用して現在のタイムスタンプを取得し、次に UPDATE ステートメントを使用して、対応するレコードのタイムスタンプ フィールドを現在のタイムスタンプに更新できます。例:
UPDATE table_name SET timestamp_field = NOW() WHERE id = 1;
このうち、table_nameはテーブル名、timestamp_fieldはタイムスタンプフィールド名、idは対象レコードの主キー値です。
複数のレコードのタイムスタンプを現在のタイムスタンプにバッチ更新する必要がある場合は、UPDATE ステートメントと条件ステートメントを組み合わせて使用できます。たとえば、次のようになります。
UPDATE table_name SET timestamp_field = NOW() WHERE 条件;
このうち、条件は更新が必要なレコードを絞り込むための条件文です。たとえば、すべてのレコードのタイムスタンプ フィールドをステータス 1 で更新する必要がある場合は、次のステートメントを使用できます:
UPDATE table_name SET timestamp_field = NOW() WHERE status = 1;
3. タイムスタンプを指定したタイムスタンプに変更します。
タイムスタンプを現在のタイムスタンプに変更することに加えて、特定のレコードのタイムスタンプを指定したタイムスタンプに変更する必要がある場合もあります。 Mysql では、DATE_FORMAT() 関数を使用して、指定した時刻文字列を Mysql タイムスタンプに変換できます。例:
SELECT DATE_FORMAT('2020-10-13 18:03:00', '%Y) - %m-%d %H:%i:%s'); //時刻文字列を Mysql タイムスタンプに変換します
その後、UPDATE ステートメントを使用して、対応するレコードのタイムスタンプ フィールドを更新できます例:
UPDATE table_name SET timestamp_field = '2020-10-13 18:03:00' WHERE id = 1;
where, '2020-10-13 18:03 :00' は指定されたタイムスタンプ文字列、table_name はテーブル名、timestamp_field はタイムスタンプ フィールド名、id はターゲット レコードの主キー値です。
複数のレコードのタイムスタンプを指定したタイムスタンプにバッチ更新する必要がある場合は、UPDATE ステートメントと条件ステートメントを組み合わせて使用することもできます。たとえば、
UPDATE table_name SET timestamp_field = '2020 -10- 13 18:03:00' WHERE 条件;
where 条件は、更新する必要があるレコードをフィルタリングするための条件文です。たとえば、ステータス 1 のすべてのレコードのタイムスタンプ フィールドを 2020-10-13 18:03:00 に更新する必要がある場合は、次のステートメントを使用できます:
UPDATE table_name SET timestamp_field = '2020- 10-13 18 :03:00' WHERE status = 1;
4. 概要
Mysql のタイムスタンプは一般的なデータ型であり、タイムスタンプの保存、クエリ、計算に広く使用されています。実際のアプリケーションでは、タイムスタンプを現在のタイムスタンプまたは指定されたタイムスタンプに変更するなど、データベース内のタイムスタンプを変更する必要がある場合があります。現在のタイムスタンプを取得する NOW() 関数、文字列を MySQL タイムスタンプに変換する DATE_FORMAT() 関数、タイムスタンプ フィールドを更新する UPDATE ステートメントなど、対応する Mysql 関数と操作を使用してタイムスタンプを変更できます。 。これらの操作をマスターすると、Mysql をより適切に使用してタイムスタンプ データを管理できるようになります。
以上がmysqlの時刻変更の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。