在多时写程式都会用 Unix Timestamp 储存时间,好处是可以很简单作日期计算,以及用不同格式显示日期。
以前储存在 MySQL 的日期时间,会撷取后用 PHP 的 date() 函式显示,但 MySQL 已经内置了用作换算 Unix Timestamp 的功能,用起来很方便,以下记录一下用法。
UNIX_TIMESTAMP() — 取得目录 Unix Timestamp:
|
1 |
SELECT UNIX_TIMESTAMP(NOW()) |
以前习惯在 PHP 用 time() 函式插入 Unix Timestamp 到 MySQL,在 SQL Query 里面用 MySQL 的 UNIX_TIMESTAMP() 可以达到同样效果,而且更加直接,例如有 mytable 这个资料表:
|
1 2 3 4 5 |
CREATE TABLE `mytable` ( `id` int(10) NOT NULL, `name` varchar(100) NOT NULL, `date` int(10) NOT NULL ); |
插入资料时用 UNIX_TIMESTAMP() 函式插入 Unix Timestamp:
|
1 |
INSERT INTO mytable VALUES(1, 'My Name', UNIX_TIMESTAMP(now())); |
FROM_UNIXTIME() — 将 Unix Timestamp 转换成日期格式:
例如上面 mytable 资料表的 date 字段储存了 Unix Timestamp, 想从 MySQL 撷取的资料直接显示日期格式 dd-mm-yyyy hh:ii, 可以这样做:
|
1 |
select id, name, FROM_UNIXTIME(`date`, %d-%m-%Y %h:%i) from mytable; |