在 SQL 中处理 Unix 时间戳数据非常简单。大多数 SQL 数据库系统(如 MySQL、PostgreSQL、SQLite 和 SQL Server)都可以直接使用 Unix 时间戳值进行操作。以下是一些常见数据库中的示例。
MySQL:
假设您有一个名为 events
的表,其中包含一个名为 event_time
的 Unix 时间戳列。要插入一个新的事件,可以使用以下查询:
INSERT INTO events (event_time) VALUES (1625731200);
要查询以特定 Unix 时间戳为单位的时间范围内的所有事件,可以使用以下查询:
SELECT * FROM events WHERE event_time >= 1625731200 AND event_time < 1625817600;
PostgreSQL:
在 PostgreSQL 中,Unix 时间戳以秒为单位存储。插入一个新的事件:
INSERT INTO events (event_time) VALUES (1625731200);
查询特定 Unix 时间戳范围内的事件:
SELECT * FROM events WHERE event_time >= 1625731200 AND event_time < 1625817600;
如果您的 Unix 时间戳以毫秒为单位,需要将其转换为秒:
SELECT * FROM events WHERE event_time >= 1625731200000 AND event_time < 1625817600000;
SQLite:
在 SQLite 中,Unix 时间戳同样以秒为单位存储。插入一个新的事件:
INSERT INTO events (event_time) VALUES (1625731200);
查询特定 Unix 时间戳范围内的事件:
SELECT * FROM events WHERE event_time >= 1625731200 AND event_time < 1625817600;
SQL Server:
在 SQL Server 中,Unix 时间戳以毫秒为单位存储。插入一个新的事件:
INSERT INTO events (event_time) VALUES (1625731200000);
查询特定 Unix 时间戳范围内的事件:
SELECT * FROM events WHERE event_time >= 1625731200000 AND event_time < 1625817600000;
这些示例适用于大多数 SQL 数据库系统。只需根据您正在使用的数据库系统进行相应的调整即可。