0

現在の時刻 (00:30 など) を自分の列の 1 つに保存したいのですが、デフォルトでCURRENT_TIMESTAMPは日付と時刻の両方が表示されますが、これは望ましくありません。

またはから時間だけを取得する方法はありますかCURRENT_TIMESTAMP??

4

4 に答える 4

1

とを組み合わせてみてTIME()くださいNOW():

SELECT TIME(NOW());

出力:15:20:31

もちろん、列のタイプは「TIME」である必要があります。

于 2013-09-18T22:21:13.673 に答える
1

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)

于 2013-09-18T22:22:21.497 に答える
0

テーブルを作成するときに、列のタイプをTIME

于 2013-09-18T22:22:01.080 に答える
0

あなたの質問を正しく理解できれば、デフォルト値が 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
于 2013-09-18T22:24:19.847 に答える