MySQLはタイムスタンプを自動的に行に保存できますか?
はい、次の2つの方法でこれを実現できます。
-
最初のアプローチ テーブル作成時。
-
2番目のアプローチ クエリの作成時。
構文は次のとおりです。
CREATE TABLE yourTableName ( yourDateTimeColumnName datetime default current_timestamp );
alterコマンドを使用できます。
構文は次のとおりです。
ALTER TABLE yourTableName ADD yourColumnName datetime DEFAULT CURRENT_TIMESTAMP;
今すぐ両方の構文を実装してください。
最初のアプローチは次のとおりです。
mysql> create table CurrentTimeStampDemo -> ( -> CreationDate datetime default current_timestamp -> ); Query OK, 0 rows affected (0.61 sec)
列「CreationDate」にパラメータを渡さない場合、MySQLはデフォルトで現在のタイムスタンプを保存します。
挿入コマンドを使用して、テーブルにレコードを挿入します。クエリは次のとおりです。
mysql> insert into CurrentTimeStampDemo values(); Query OK, 1 row affected (0.12 sec) Let us now display all records from the table
selectコマンドを使用します。クエリは次のとおりです。
mysql> select *from CurrentTimeStampDemo;
以下は出力です。
+---------------------+ | CreationDate | +---------------------+ | 2019-01-02 15:53:03 | +---------------------+ 1 row in set (0.00 sec)
2番目のアプローチ
これはALTERコマンドを使用しています。テーブルを作成するためのクエリは次のとおりです。
mysql> create table Current_TimestampDemo -> ( -> Id int -> ); Query OK, 0 rows affected (0.43 sec)
作成時間を自動的に保存するクエリは次のとおりです。クエリは次のとおりです。
mysql> ALTER TABLE Current_TimestampDemo -> ADD CreationDate datetime DEFAULT CURRENT_TIMESTAMP; Query OK, 0 rows affected (0.53 sec) Records: 0 Duplicates: 0 Warnings: 0
列「CreationDate」の値を渡さない場合。 MySQLは、この列の現在の日時値を格納します。クエリは次のとおりです。
mysql> insert into Current_TimestampDemo(Id) values(1); Query OK, 1 row affected (0.19 sec)
selectステートメントを使用してテーブルのレコードを表示します。クエリは次のとおりです。
mysql> select CreationDate from Current_TimestampDemo;
以下は出力です。
+---------------------+ | CreationDate | +---------------------+ | 2019-01-02 16:25:12 | +---------------------+ 1 row in set (0.00 sec)
-
テーブルを動的に作成するMySQLクエリ?
このために、ストアドプロシージャを使用できます。 2つの列を持つテーブルを動的に作成しましょう。つまり、StudentIdはintで、StudentNameはvarchar- mysql> DELIMITER $$ mysql> CREATE PROCEDURE creatingDynamicTableDemo(yourTableName VARCHAR(200)) -> BEGIN -> SET @name = yourTableName; ->
-
タイムスタンプを月に変換するMySQLクエリ?
タイムスタンプを月に変換するには、次の構文のようにFROM_UNIXTIME()メソッドを使用します- select month(from_unixtime(yourColumnName)) from yourTableName; まずテーブルを作成しましょう- mysql> create table DemoTable1457 -> ( -> Value bigint -> ); Query OK, 0 rows affected (0.85 sec) 挿入コマンド-を使用して、テーブル