MySQL CURTIME() 函數 (取得當前時間)

CURTIME() 是 MySQL 中用來取得當前時間的函數。它只返回時間部分,不包含日期,格式為 HH:MM:SS

CURRENT_TIMECURRENT_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()TIME14:30:45
CURDATE()DATE2024-11-22
NOW()DATETIME2024-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;

更多 MySQL 相關的日期時間函數在這邊
更多 SQL Server 相關的日期時間函數在這邊