現在の時刻 (00:30 など) を自分の列の 1 つに保存したいのですが、デフォルトでCURRENT_TIMESTAMP
は日付と時刻の両方が表示されますが、これは望ましくありません。
またはから時間だけを取得する方法はありますかCURRENT_TIMESTAMP
??
MySQL の組み込みTIME()
関数を使用して、datetime 式の時間部分を抽出できます。例えば:
mysql> select time(now());
+-------------+
| time(now()) |
+-------------+
| 18:21:38 |
+-------------+
1 row in set (0.03 sec)
CURRENT_TIMESTAMP
は の同義語なのでNOW()
、そのまま使用できますTIME(CURRENT_TIMESTAMP)
。
テーブルを作成するときに、列のタイプをTIME
あなたの質問を正しく理解できれば、デフォルト値が CURRENT_TIMESTAMP のタイムスタンプ列があると思います。
CREATE TABLE yourTable (
...,
...,
currentTime TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
日付部分ではなく現在の時刻を保存するだけの場合は、TIME 列とトリガーを使用すると、時刻部分が自動的に挿入されます。
CREATE TABLE tableName (
...,
...,
currentTime TIME
);
CREATE TRIGGER currentTime BEFORE INSERT ON tableName
FOR EACH ROW
SET new.currentTime = TIME(NOW());
(例はこちら) また、UPDATE トリガーを使用することもできます。または、CURRENT_TIMESTAMP を使用して、TIME 関数で時間部分のみを取得することもできます。
SELECT TIME(yourTimestampColumn)
FROM yourTable