查詢、統計、前端交互常需在 DATETIME/TIMESTAMP 與 Unix 時間戳(秒/毫秒)間轉換。
USE test;
CREATE TABLE t_stu_info(
id INT NOT NULL PRIMARY KEY,
stu_name VARCHAR(20),
stu_date TIMESTAMP,
stu_age INT(3),
stu_sex VARCHAR(5)
);
INSERT INTO t_stu_info VALUES (1, 'zhangsan', '2000-12-12 12:30:00', 15, 'man');
SELECT UNIX_TIMESTAMP(t.stu_date) FROM t_stu_info t;
結果:976633800(秒級)
-- 完整時間 SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(t.stu_date), '%Y-%m-%d %h:%i:%s') AS stu_date FROM t_stu_info t; -- 結果:2000-12-12 12:30:00 -- 僅日期 SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(t.stu_date), '%Y-%m-%d') AS stu_date FROM t_stu_info t; -- 結果:2000-12-12
MySQL 5.6.4+ 支持微秒精度
DATETIME(6)。
•UNIX_TIMESTAMP(日期)返回秒(含小數部分)。
•FROM_UNIXTIME(秒.微秒)可還原微秒。
• 若需純毫秒整數:ROUND(UNIX_TIMESTAMP(日期) * 1000)。
| 符號 | 含義 |
|---|---|
| %Y | 四位年份 |
| %m | 兩位月份 |
| %d | 兩位日期 |
| %H | 24制小時 |
| %i | 分鐘 |
| %s | 秒 |
| %f | 微秒(6位) |