MySQL CURTIME() 函數 (取得當前時間)
CURTIME() 是 MySQL 中用來取得當前時間的函數。它只返回時間部分,不包含日期,格式為 HH:MM:SS。
CURRENT_TIME 和 CURRENT_TIME() 是 CURTIME() 的同義詞,可以互換使用。
CURTIME() 語法 (Syntax)
CURTIME([fsp])
-- 或
CURRENT_TIME
-- 或
CURRENT_TIME([fsp])
- fsp (fractional seconds precision):可選參數,指定秒數的小數位數精度,範圍為 0-6。預設為 0。
CURTIME() 函數用法範例 (Example)
基本用法
SELECT CURTIME();
-- 結果:14:30:45
SELECT CURRENT_TIME;
-- 結果:14:30:45
指定秒數精度
SELECT CURTIME(3);
-- 結果:14:30:45.123
SELECT CURTIME(6);
-- 結果:14:30:45.123456
記錄操作時間
INSERT INTO activity_logs (user_id, action, action_time)
VALUES (1, 'login', CURTIME());
篩選特定時間範圍的記錄
-- 取得上班時間(09:00-18:00)內建立的記錄
SELECT * FROM orders
WHERE TIME(order_date) BETWEEN '09:00:00' AND '18:00:00';
-- 取得下午的訂單(12:00 之後)
SELECT * FROM orders
WHERE TIME(order_date) >= '12:00:00';
計算時間差異
-- 計算距離下班時間還有多久(假設下班時間是 18:00)
SELECT TIMEDIFF('18:00:00', CURTIME()) AS time_until_off_work;
CURTIME() 與其他時間函數的比較
| 函數 | 返回類型 | 範例結果 |
|---|---|---|
| CURTIME() | TIME | 14:30:45 |
| CURDATE() | DATE | 2024-11-22 |
| NOW() | DATETIME | 2024-11-22 14:30:45 |
SELECT CURTIME(), CURDATE(), NOW();
-- 結果:14:30:45, 2024-11-22, 2024-11-22 14:30:45
CURTIME() 的數值用法
CURTIME() 在數值運算中會被轉換為數字格式:
SELECT CURTIME() + 0;
-- 結果:143045(HHMMSS 格式的數字,表示 14:30:45)
時間運算
-- 取得 1 小時後的時間
SELECT ADDTIME(CURTIME(), '01:00:00') AS one_hour_later;
-- 取得 30 分鐘前的時間
SELECT SUBTIME(CURTIME(), '00:30:00') AS thirty_minutes_ago;
-- 使用 TIME_TO_SEC 和 SEC_TO_TIME 進行精確計算
SELECT SEC_TO_TIME(TIME_TO_SEC(CURTIME()) + 3600) AS one_hour_later;