游戲後台統計、日誌分析、報表查詢中高頻使用的時間轉換、格式化、計算函數,附實際輸出示例。
SELECT NOW(); -- 2014-11-24 18:38:17 (日期時間) SELECT CURDATE(); -- 2014-11-24 (僅日期) SELECT CURTIME(); -- 18:38:17 (僅時間)
-- 日期時間 → 時間戳 (秒)
SELECT UNIX_TIMESTAMP(); -- 1416825969 (當前)
SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00'); -- 875996580
-- 時間戳 → 日期時間
SELECT FROM_UNIXTIME(875996580); -- 1997-10-05 04:23:00
SELECT FROM_UNIXTIME(875996580, '%y%m%d'); -- 971005 (自定義格式)
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 2014-11-24 18:38:17
SELECT DATE_FORMAT(NOW(), '%y%m%d'); -- 141124
SELECT DATE_FORMAT('2014-11-24', '%W %M %Y'); -- Monday November 2014
| 符號 | 含義 | 示例 |
|---|---|---|
| %Y | 4 位年份 | 2014 |
| %y | 2 位年份 | 14 |
| %m | 月份 (01-12) | 11 |
| %d | 日期 (01-31) | 24 |
| %H | 小時 (00-23) | 18 |
| %i | 分鐘 (00-59) | 38 |
| %s | 秒 (00-59) | 17 |
| %W | 星期名稱 | Monday |
| %M | 月份名稱 | November |
SELECT DATE_ADD(NOW(), INTERVAL 1 DAY); -- 明天同一時間
SELECT DATE_SUB(NOW(), INTERVAL 1 HOUR); -- 1 小時前
SELECT DATEDIFF('2014-12-01', '2014-11-24'); -- 7 (天數差)
SELECT LAST_DAY('2014-02-10'); -- 2014-02-28 (月末日期)
SELECT @@session.time_zone; -- SYSTEM / +08:00 SET time_zone = '+08:00'; -- 會話級設置 -- 存儲建議: 統一存 UTC (TIMESTAMP 自動轉換), 應用層按用戶時區展示