在PostgreSQL中,你可以通过在INSERT
和SELECT
操作中利用CURRENT_TIMESTAMP
函数来添加时间相关信息。
在INSERT
操作中添加时间
假设你有一个表,除了业务字段外,还有一个用于记录插入时间的字段。例如创建一个名为test_table
的表,包含id
(主键,自增长)、data
(存储数据的文本字段)和insert_time
(记录插入时间的时间戳字段):
sql
-- 创建表
CREATE TABLE test_table (
id SERIAL PRIMARY KEY,
data TEXT,
insert_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
在上述表结构中,insert_time
字段使用DEFAULT CURRENT_TIMESTAMP
约束,当插入数据时,如果未显式指定该字段的值,会自动插入当前的时间戳。
插入数据时,你可以不指定insert_time
字段的值,让数据库自动填充:
sql
-- 插入数据
INSERT INTO test_table (data) VALUES ('第一条数据');
也可以显式指定insert_time
字段的值(通常用于特殊需求,比如模拟特定时间插入数据):
sql
INSERT INTO test_table (data, insert_time) VALUES ('指定时间插入的数据', '2024-01-01 12:00:00');
在SELECT
操作中添加时间
当进行查询时,可以通过CURRENT_TIMESTAMP
函数在查询结果中增加一个当前时间列。例如从test_table
表中查询所有数据,并在结果中增加一个表示查询时当前时间的列:
sql
-- 查询数据并添加当前时间列
SELECT id, data, insert_time, CURRENT_TIMESTAMP AS query_time
FROM test_table;
上述查询结果会包含id
、data
、insert_time
(插入数据时的时间)以及query_time
(查询时的当前时间)这几列信息。这样在查询数据的同时,也能获取到查询发生的时间点。