- 1 1. はじめに
- 2 2. MySQLで現在時刻を取得する関数一覧(比較表)
- 3 3. NOW()関数の詳細
- 4 4. SYSDATE()関数の特徴
- 5 5. CURTIME()関数とCURRENT_TIME()関数
- 6 6. 現在時刻を使用した実用的なクエリ例
- 7 7. FAQ(よくある質問)
- 8 8. まとめ
1. はじめに
MySQLで現在時刻を取得することは、データベース管理において非常に重要な要素です。
たとえば、以下のような場面で現在時刻を取得する必要があります。
- データ挿入時に作成日時を自動記録(例:新規ユーザー登録時のタイムスタンプ)
- ユーザーログイン時間の記録(例:ログイン履歴の管理)
- 一定期間のデータを取得(例:過去24時間の注文履歴を取得)
- システムの実行ログの記録(例:エラーログやイベントログの管理)
このように、データの管理やログ記録において「現在時刻」を適切に取得することは、データベースの運用において不可欠です。
本記事では、MySQLで現在時刻を取得する方法について、実際のSQLクエリを交えながら詳しく解説します。
また、よく使われる関数の違いや適切な使い分け、実用的なクエリ例についても紹介するので、初心者の方から中級者の方まで役立つ内容となっています。
2. MySQLで現在時刻を取得する関数一覧(比較表)
MySQLには現在時刻を取得するための関数が複数存在します。
用途によって適切な関数を選ぶことが重要ですが、それぞれの違いが分かりにくいと感じる方も多いでしょう。
このセクションでは、MySQLで現在時刻を取得する主要な関数を一覧表で比較し、それぞれの特性を詳しく解説します。
2.1 MySQLの時刻取得関数の比較表
関数名 | 取得できる情報 | フォーマット | 特徴 |
---|---|---|---|
NOW() | 現在の日時 | YYYY-MM-DD HH:MM:SS | 最も一般的に使用される |
SYSDATE() | 実行時の日時 | YYYY-MM-DD HH:MM:SS | NOW()と異なり、実行ごとに変化 |
CURTIME() | 現在の時刻 | HH:MM:SS | 日付なし、時刻のみ取得 |
CURRENT_TIME() | 現在の時刻 | HH:MM:SS | CURTIME()と同じ |
CURRENT_TIMESTAMP() | 現在の日時 | YYYY-MM-DD HH:MM:SS | NOW()とほぼ同じ |
UTC_TIMESTAMP() | UTCの現在日時 | YYYY-MM-DD HH:MM:SS | タイムゾーンがUTC固定 |
上記の表を見ると、ほとんどの関数が「現在の日時」や「現在の時刻」を取得するものですが、使用する目的に応じて選ぶべき関数が異なります。
2.2 各関数の概要と特徴
NOW()関数
- 現在の日時を取得する最も一般的な関数
- SQLクエリを開始した時点の時刻を返す
- データ挿入や更新の際のタイムスタンプ取得によく使用される
SELECT NOW();
実行結果(例)
2025-02-14 15:30:45
SYSDATE()関数
- クエリ実行のタイミングで現在時刻を取得
- NOW()との違いは、SYSDATE()は実行ごとに異なる時間を返す(トランザクション中でも変わる)
SELECT SYSDATE();
実行結果(例)
2025-02-14 15:30:47
CURTIME()関数
- 時刻(HH:MM:SS)だけを取得
- 日付が不要な場合に使用
SELECT CURTIME();
実行結果(例)
15:30:45
CURRENT_TIME()関数
- CURTIME()と同じ動作をする
- SQL標準に準拠した関数名
SELECT CURRENT_TIME();
実行結果(例)
15:30:45
CURRENT_TIMESTAMP()関数
- NOW()と同じ動作
DEFAULT
値としてテーブルのカラムに指定可能(NOW()
より適している)
SELECT CURRENT_TIMESTAMP();
実行結果(例)
2025-02-14 15:30:45
テーブル作成時にデフォルト値として設定:
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
UTC_TIMESTAMP()関数
- UTC(協定世界時)の現在時刻を取得
- サーバーのタイムゾーンに依存せず、一貫した時刻を取得可能
SELECT UTC_TIMESTAMP();
実行結果(例)
2025-02-14 06:30:45
2.3 どの関数を使うべきか?
使用シーン | 推奨関数 |
---|---|
現在の日時を取得 | NOW() |
トランザクションごとに異なる時刻を取得 | SYSDATE() |
現在の時刻(HH:MM:SS のみ)が必要 | CURTIME() または CURRENT_TIME() |
テーブルのデフォルト値として設定 | CURRENT_TIMESTAMP() |
UTC(協定世界時)を取得 | UTC_TIMESTAMP() |
基本的に、通常の日時取得なら NOW()
を使えば問題なし!
ただし、用途に応じて適切な関数を選ぶことで、より柔軟なデータ操作が可能になります。
3. NOW()関数の詳細
MySQLのNOW()
関数は、現在の日時(年月日+時刻)を取得する最も一般的な関数です。
データベースに保存する際や、特定の期間のデータを取得する際など、幅広い用途で使用されます。
3.1 NOW()関数の基本的な使い方
NOW()の構文
SELECT NOW();
実行結果(例)
2025-02-14 15:30:45
YYYY-MM-DD HH:MM:SS
(年-月-日 時:分:秒)のフォーマットで出力される。- MySQLのデフォルトのタイムゾーン設定に基づいて時刻が取得される。
3.2 NOW()関数の用途
① データ挿入時に現在時刻を記録
データベースにデータを挿入する際、NOW()
を使って作成日時を記録できます。
INSERT INTO users (name, created_at) VALUES ('佐藤', NOW());
② データ更新時に現在時刻を記録
UPDATE users SET last_login = NOW() WHERE id = 1;
③ 一定期間のデータを取得
SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 1 DAY;
INTERVAL 1 DAY
を指定することで、「過去1日間のデータ」を取得。
3.3 NOW()関数の戻り値の型とフォーマット変更
NOW()の戻り値のデータ型
DATETIME
型(YYYY-MM-DD HH:MM:SS
)- 文字列として扱うことも可能
SELECT NOW(), typeof(NOW());
フォーマットを変更する方法
SELECT DATE_FORMAT(NOW(), '%Y/%m/%d %H:%i:%s') AS formatted_time;
実行結果
2025/02/14 15:30:45
3.4 NOW()関数とSYSDATE()関数の違い
関数名 | 取得タイミング | 特徴 |
---|---|---|
NOW() | クエリ開始時 | クエリが実行される時点の固定時刻を取得 |
SYSDATE() | クエリ実行時 | クエリの実行ごとに異なる時刻を取得 |
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();
実行結果(例)
NOW() | SLEEP(3) | NOW()
2025-02-14 15:30:45 | 3秒待機 | 2025-02-14 15:30:45
SYSDATE() | SLEEP(3) | SYSDATE()
2025-02-14 15:30:45 | 3秒待機 | 2025-02-14 15:30:48
🚨 トランザクションを扱う場合は NOW()
の方が一貫性があるため推奨!
3.5 NOW()関数の制約と注意点
① タイムゾーンに依存
SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
② テーブルのデフォルト値としては CURRENT_TIMESTAMP を使う
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3.6 NOW()関数のまとめ
NOW()
はMySQLで現在の日時を取得する最も一般的な関数。- データの挿入・更新・取得など、さまざまな用途で使用可能。
- トランザクション内で統一した時刻を扱いたい場合は
NOW()
を使用。 SYSDATE()
は実行ごとに異なる時刻を取得するため、正確な実行時刻が必要な場合に使用。- 異なるタイムゾーンの時刻を取得するには
CONVERT_TZ()
を使用。
📌 結論: MySQLで現在の日時を取得するなら、通常は NOW()
を使うのがベスト!

4. SYSDATE()関数の特徴
SYSDATE()
関数は、MySQLで現在の日時を取得する方法の一つですが、NOW()
とは異なる動作をします。
このセクションでは、SYSDATE()
の基本的な使い方や NOW()
との違い、注意点について詳しく解説します。
4.1 SYSDATE()関数とは?
SYSDATE()
は、クエリの実行時の時刻を返す関数です。NOW()
とは異なり、実行のたびに異なる時刻を取得する特徴があります。
SYSDATE() の構文
SELECT SYSDATE();
実行結果(例)
2025-02-14 16:00:45
YYYY-MM-DD HH:MM:SS
のフォーマットで返される- クエリが実行された瞬間の時刻が取得される
4.2 SYSDATE() と NOW() の違い
関数名 | 取得のタイミング | 特徴 |
---|---|---|
NOW() | クエリ開始時 | クエリ実行時点の固定時刻を返す |
SYSDATE() | クエリ実行時 | 毎回異なる時刻を返す |
NOW() と SYSDATE() の動作比較
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();
実行結果(例)
NOW() | SLEEP(3) | NOW()
2025-02-14 16:00:45 | 3秒待機 | 2025-02-14 16:00:45
SYSDATE() | SLEEP(3) | SYSDATE()
2025-02-14 16:00:45 | 3秒待機 | 2025-02-14 16:00:48
📌 ポイント
NOW()
は クエリ開始時の時刻を維持 するため、時間は変わらない。SYSDATE()
は 実行されるごとに異なる時刻を返す ため、3秒後に異なる時刻が表示される。
🚨 トランザクション処理では NOW()
を使うべき
SYSDATE()
は マルチスレッド環境 で NOW()とは異なる動作 をするため、トランザクション処理では一貫性のあるNOW()
を使うのが推奨されます。
4.3 SYSDATE() の使用例
① データ挿入時に現在時刻を記録
INSERT INTO logs (event, created_at) VALUES ('ユーザーログイン', SYSDATE());
② データ更新時に現在時刻を記録
UPDATE users SET last_login = SYSDATE() WHERE id = 1;
③ 現在時刻を特定のフォーマットで取得
SELECT DATE_FORMAT(SYSDATE(), '%Y-%m-%d %H:%i:%s') AS formatted_time;
実行結果(例)
2025-02-14 16:05:30
4.4 SYSDATE() の制約と注意点
① トランザクションの影響
NOW()
は クエリ開始時点の時刻を保持するため、トランザクション内で一貫した時刻を利用できる。SYSDATE()
は 実行のたびに異なる時刻を取得するため、トランザクション内で時間のズレが発生する可能性がある。
② デフォルト値としては使用不可
SYSDATE()
は テーブルのDEFAULT
値として設定できない。
✅ 解決策: DEFAULT CURRENT_TIMESTAMP
を使用する。
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4.5 どのような場合に SYSDATE() を使うべきか?
使用シーン | 推奨関数 |
---|---|
通常の現在時刻取得 | NOW() |
トランザクションで統一した時刻を使用 | NOW() |
正確な実行時刻を取得したい場合 | SYSDATE() |
🚀 SYSDATE() はリアルタイムログ記録などに適しているが、トランザクション処理には不向き。
4.6 SYSDATE() のまとめ
- SYSDATE() は
NOW()
とは異なり、クエリの実行時点の時刻を取得できる関数。 - 実行のたびに異なる時刻を返すため、リアルタイムのログ記録などに適している。
- トランザクション内での一貫性を考慮する場合は
NOW()
を推奨。 - デフォルト値としては
CURRENT_TIMESTAMP
を使用する必要がある。
📌 結論: 一般的な時刻取得には NOW()
を使うのがベストだが、正確な実行時刻が必要なら SYSDATE()
を選択!
5. CURTIME()関数とCURRENT_TIME()関数
MySQLで現在時刻を取得する際、CURTIME()
と CURRENT_TIME()
は、時刻(HH:MM:SS)だけを取得したい場合に使用されます。
このセクションでは、それぞれの基本的な使い方や違い、実用例について詳しく解説します。
5.1 CURTIME()関数とは?
CURTIME()
は、MySQLで 現在の時刻(時・分・秒)を取得する関数 です。
日付部分は含まれず、時間情報のみが返されるのが特徴です。
CURTIME() の構文
SELECT CURTIME();
実行結果(例)
16:30:45
- フォーマットは
HH:MM:SS
- サーバーのタイムゾーン設定に基づく
NOW()
とは異なり、日付情報が不要な場合に適している
5.2 CURRENT_TIME()関数とは?
CURRENT_TIME()
も CURTIME()
と同じく、現在の時刻(HH:MM:SS)を取得する関数 です。
実際には CURTIME()
と全く同じ動作をします。
CURRENT_TIME() の構文
SELECT CURRENT_TIME();
実行結果(例)
16:30:45
📌 違いは?
CURTIME()
は MySQL独自の関数CURRENT_TIME()
は SQL標準の関数- どちらを使っても動作は同じ
- 可読性の好みで選んでOK(どちらを使っても実行速度に差はない)
5.3 CURTIME()とCURRENT_TIME()の比較
関数名 | 取得できる情報 | フォーマット | 特徴 |
---|---|---|---|
CURTIME() | 現在の時刻(時・分・秒) | HH:MM:SS | MySQL独自の関数 |
CURRENT_TIME() | 現在の時刻(時・分・秒) | HH:MM:SS | SQL標準の関数 |
5.4 CURTIME() / CURRENT_TIME() の実用例
① データ挿入時に現在の時刻を記録
INSERT INTO user_logs (event, event_time) VALUES ('ログイン', CURTIME());
② フィルタリング(特定の時間帯のデータを取得)
SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';
③ フォーマット変更(ミリ秒を含める)
SELECT CURTIME(3); -- 小数点3桁まで表示
実行結果(例)
16:30:45.123
5.5 CURTIME() / CURRENT_TIME() の制約と注意点
① 日付情報がないため、日付と組み合わせる必要がある
SELECT CONCAT(CURDATE(), ' ', CURTIME()) AS full_datetime;
② デフォルト値として使用する場合
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
event_time TIME DEFAULT CURTIME()
);
5.6 どのような場合に CURTIME() / CURRENT_TIME() を使うべきか?
使用シーン | 推奨関数 |
---|---|
現在の時刻のみ(時・分・秒)が必要 | CURTIME() または CURRENT_TIME() |
日付も含めた現在時刻を取得 | NOW() |
ミリ秒単位の時刻を取得 | CURTIME(3) |
📌 基本的には、CURTIME()
か CURRENT_TIME()
のどちらを使っても問題なし!
可読性の好みで選ぶとよいでしょう。
5.7 CURTIME() / CURRENT_TIME() のまとめ
CURTIME()
は MySQL独自の関数、CURRENT_TIME()
は SQL標準の関数- どちらも現在の時刻(HH:MM:SS)を取得する
- フォーマット変更には
CURTIME(3)
やDATE_FORMAT()
を使用 - 日付が必要なら
CURDATE()
やNOW()
を組み合わせる - デフォルト値としては
CURRENT_TIMESTAMP
を使用するのが一般的
📌 結論: 現在の「時刻のみ」が欲しいなら CURTIME()
を使えばOK!
6. 現在時刻を使用した実用的なクエリ例
MySQLで現在時刻を取得する方法を理解したところで、実際の活用方法について見ていきましょう。
このセクションでは、現在時刻を使った実用的なクエリの例を紹介します。
データの挿入、更新、検索など、日常的なデータベース操作で役立つテクニックを解説します。
6.1 データ挿入時に現在時刻を記録
① ユーザー登録時に現在時刻を記録
INSERT INTO users (name, email, created_at)
VALUES ('佐藤', 'sato@example.com', NOW());
6.2 データ更新時に現在時刻を記録
② ユーザーの最終ログイン日時を記録
UPDATE users SET last_login = NOW() WHERE id = 1;
6.3 過去◯日間のデータを取得
③ 過去7日間の注文データを取得
SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
6.4 指定した時間帯のデータを取得
④ 今日の午前9時〜午後6時に作成されたデータを取得
SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';
6.5 タイムゾーンを考慮した現在時刻の取得
⑤ UTC時刻を日本時間(JST)に変換
SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
6.6 レコードの作成日時をデフォルトで現在時刻にする
⑥ created_at に現在時刻を自動設定
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
event VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
6.7 一定時間経過後のデータを削除
⑦ 30日以上前のデータを削除
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;
6.8 現在時刻をミリ秒(マイクロ秒)まで取得
⑧ ミリ秒単位の現在時刻を取得
SELECT NOW(3);
実行結果
2025-02-14 16:30:45.123
6.9 現在時刻を使ったユースケース別の選択ガイド
使用シーン | 推奨関数 | 例 |
---|---|---|
データ挿入時に現在時刻を記録 | NOW() | INSERT INTO users (name, created_at) VALUES ('佐藤', NOW()); |
データ更新時に現在時刻を記録 | NOW() | UPDATE users SET last_login = NOW() WHERE id = 1; |
過去◯日間のデータを取得 | NOW() - INTERVAL X DAY | SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY; |
特定の時間帯のデータを取得 | CURTIME() | SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00'; |
UTC時刻をJSTに変換 | CONVERT_TZ() | SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo'); |
古いデータを削除(30日以上前) | NOW() - INTERVAL X DAY | DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY; |
6.10 まとめ
NOW()
を使えば基本的な現在時刻の取得が可能CURTIME()
やCURRENT_TIME()
は時間のみを取得したい場合に有効- 過去◯日間のデータ取得、時間帯フィルタ、ミリ秒精度の取得など、多様な用途に活用できる
- タイムゾーンの影響を受けるため、
CONVERT_TZ()
を使用して適切な時間を取得する - データベースのサイズ管理のために、古いデータを自動削除する仕組みも重要
📌 結論: 現在時刻を活用することで、MySQLでのデータ管理をより効率的に!
7. FAQ(よくある質問)
MySQLで現在時刻を取得する方法について、よくある質問(FAQ) をまとめました。
それぞれの疑問に対して、分かりやすく解説します。
7.1 NOW()関数とSYSDATE()関数の違いは何ですか?
答え
NOW()
と SYSDATE()
はどちらも現在の日時を取得しますが、取得タイミング に違いがあります。
関数名 | 取得タイミング | 特徴 |
---|---|---|
NOW() | クエリ開始時 | クエリ実行時点の固定時刻を取得 |
SYSDATE() | クエリ実行時 | 実行するたびに異なる時刻を取得 |
動作確認
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();
実行結果(例)
NOW() | SLEEP(3) | NOW()
2025-02-14 16:30:45 | 3秒待機 | 2025-02-14 16:30:45
SYSDATE() | SLEEP(3) | SYSDATE()
2025-02-14 16:30:45 | 3秒待機 | 2025-02-14 16:30:48
🚨 トランザクション処理では NOW()
を使うのが推奨!
7.2 CURRENT_TIMESTAMP()とNOW()は同じですか?
答え
基本的には 同じ動作 をしますが、CURRENT_TIMESTAMP()
は デフォルト値として使用可能 です。
テーブル作成時の例
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
7.3 現在時刻を特定のタイムゾーンで取得する方法は?
答え
SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
7.4 現在時刻を自動的に記録するには?
答え
テーブル作成時に DEFAULT CURRENT_TIMESTAMP
を指定すれば、自動的に created_at
に現在時刻が保存されます。
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
event VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
7.5 過去◯日間のデータを取得する方法は?
答え
SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
7.6 現在時刻をミリ秒(マイクロ秒)まで取得するには?
答え
SELECT NOW(3);
実行結果
2025-02-14 16:30:45.123
7.7 まとめ
NOW()
とSYSDATE()
は取得タイミングが異なるCURRENT_TIMESTAMP()
はDEFAULT
値として使用できるCONVERT_TZ()
を使えば、異なるタイムゾーンの時刻を取得可能- 自動的に現在時刻を記録する場合は
DEFAULT CURRENT_TIMESTAMP
を活用 - 過去◯日間のデータ取得には
NOW() - INTERVAL X DAY
を使用 NOW(3)
やNOW(6)
でミリ秒・マイクロ秒精度の時刻取得が可能
📌 結論: MySQLで現在時刻を扱うには、適切な関数を選ぶことが重要!
8. まとめ
本記事では、MySQLで現在時刻を取得する方法について詳しく解説しました。
NOW()関数を中心に、類似する関数の違いや実際のクエリ例、注意点などを紹介しました。
8.1 MySQLで現在時刻を取得する主な関数
関数名 | 取得できる情報 | フォーマット | 特徴 |
---|---|---|---|
NOW() | 現在の日時 | YYYY-MM-DD HH:MM:SS | 最も一般的な関数 |
SYSDATE() | 実行時の日時 | YYYY-MM-DD HH:MM:SS | クエリ実行ごとに異なる時間を取得 |
CURTIME() | 現在の時刻 | HH:MM:SS | 日付なし、時刻のみ取得 |
CURRENT_TIME() | 現在の時刻 | HH:MM:SS | CURTIME()と同じ |
CURRENT_TIMESTAMP() | 現在の日時 | YYYY-MM-DD HH:MM:SS | NOW()とほぼ同じ |
UTC_TIMESTAMP() | UTCの現在日時 | YYYY-MM-DD HH:MM:SS | タイムゾーンがUTC固定 |
📌 結論:
- 一般的な現在時刻の取得には
NOW()
を使うのがベスト。 - 実行時点の正確な時刻が必要な場合は
SYSDATE()
を使用。 - 日付なしの時刻のみが必要な場合は
CURTIME()
を選択。
8.2 現在時刻を活用する実用的なクエリ
データ挿入時に現在時刻を記録
INSERT INTO users (name, created_at) VALUES ('佐藤', NOW());
データ更新時に現在時刻を記録
UPDATE users SET last_login = NOW() WHERE id = 1;
過去7日間のデータを取得
SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
タイムゾーンを考慮して時刻を取得
SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
古いデータ(30日以上前)を削除
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;
8.3 タイムゾーンに関する注意点
- MySQLの
NOW()
は デフォルトのタイムゾーン設定に基づく ため、異なる環境で異なる結果になる可能性がある。 - 異なるタイムゾーンの時刻を取得するには
CONVERT_TZ()
を使用。 - サーバーのタイムゾーンを変更する場合
SET GLOBAL time_zone = 'Asia/Tokyo';
8.4 MySQLで現在時刻を取得する際のFAQ
Q1. NOW()
と SYSDATE()
の違いは?
➡ NOW()
は クエリ開始時の時刻を取得、SYSDATE()
は クエリ実行時の時刻を取得。
Q2. CURRENT_TIMESTAMP()
と NOW()
は同じ?
➡ ほぼ同じ だが、CURRENT_TIMESTAMP()
は デフォルト値として使用可能。
Q3. 現在時刻をミリ秒(マイクロ秒)まで取得するには?
➡ NOW(3)
(ミリ秒単位)、NOW(6)
(マイクロ秒単位)を使う。
SELECT NOW(3); -- 例: 2025-02-14 16:30:45.123
8.5 まとめ
- MySQLで現在時刻を取得するには、用途に応じて適切な関数を選ぶことが重要。
- 通常の時刻取得には
NOW()
、正確な実行時刻が必要ならSYSDATE()
を使う。 - 日付なしの時刻が必要なら
CURTIME()
、異なるタイムゾーンの時刻が必要ならCONVERT_TZ()
を利用する。 - データの登録・更新・検索・削除など、さまざまな場面で現在時刻を活用できる。
📌 結論: MySQLの時刻関数を適切に使いこなすことで、より効率的なデータ管理が可能になる!