mysql> SELECT CURDATE();
+------------+
| CURDATE() |
+------------+
| 2008-08-08 |
+------------+
同義:CURRENT_DATE()、CURRENT_DATE。
mysql> SELECT CURTIME();
+-----------+
| CURTIME() |
+-----------+
| 22:41:30 |
+-----------+
同義:CURRENT_TIME()、CURRENT_TIME。
mysql> SELECT UTC_TIMESTAMP(), UTC_DATE(), UTC_TIME(), NOW();
+---------------------+------------+------------+---------------------+
| UTC_TIMESTAMP() | UTC_DATE() | UTC_TIME() | NOW() |
+---------------------+------------+------------+---------------------+
| 2008-08-08 14:47:11 | 2008-08-08 | 14:47:11 | 2008-08-08 22:47:11 |
+---------------------+------------+------------+---------------------+
關係:本地時間 = UTC 時間 + 時區偏移。台灣/中國為 UTC+8,故 NOW() = UTC_TIMESTAMP() + 8 小時。
UTC_TIMESTAMP() 或應用層統一存 UTC,顯示時再依用戶時區轉換。system_time_zone、time_zone 變數)會影響 NOW()、CURDATE() 等本地時間函數,UTC 系列不受影響。| 需求 | 推薦函數 | 同義函數 |
|---|---|---|
| 完整本地日期時間 | NOW() | CURRENT_TIMESTAMP() 等 |
| 僅本地日期 | CURDATE() | CURRENT_DATE() |
| 僅本地時間 | CURTIME() | CURRENT_TIME() |
| 完整 UTC 日期時間 | UTC_TIMESTAMP() | — |
| 僅 UTC 日期 | UTC_DATE() | — |
| 僅 UTC 時間 | UTC_TIME() | — |