在 Ubuntu(或任何 Linux)系统里,时间戳通常有两种形式:
17180000002024-06-10 12:00:00下面按数据库类型和存储方式说明。
CREATE TABLE log (
id INT PRIMARY KEY,
create_time INT -- 秒级时间戳
);
插入:
INSERT INTO log VALUES (1, UNIX_TIMESTAMP());
查询转成时间:
SELECT FROM_UNIXTIME(create_time) FROM log;
CREATE TABLE log (
id INT PRIMARY KEY,
create_time DATETIME
);
插入(Ubuntu 时间):
INSERT INTO log VALUES (1, NOW());
或:
INSERT INTO log VALUES (1, CURRENT_TIMESTAMP);
✅ 推荐:
DATETIME:不涉及时区TIMESTAMP:受时区影响(存 UTC)CREATE TABLE log (
id SERIAL PRIMARY KEY,
create_time TIMESTAMPTZ DEFAULT NOW()
);
插入:
INSERT INTO log (create_time) VALUES (NOW());
Unix 时间戳:
SELECT EXTRACT(EPOCH FROM NOW());
CREATE TABLE log (
id INTEGER PRIMARY KEY,
create_time INTEGER -- Unix 时间戳
);
插入:
INSERT INTO log VALUES (1, strftime('%s','now'));
date +%s
date +%s%3N
date '+%Y-%m-%d %H:%M:%S'
import time
ts = int(time.time())
或:
from datetime import datetime
now = datetime.now()
mysql -u user -p db <<EOF
INSERT INTO log (create_time) VALUES (NOW());
EOF
✅ 推荐做法
DATETIME / TIMESTAMPTZ❌ 不推荐
"2024-06-10"如果你能告诉我:
我可以给你更精确的建表和代码方案。