从 PostgreSQL 的日期时间列中提取天、小时、分钟等?
让我们创建一个包含单个时间戳列的新表-
CREATE TABLE timestamp_test( ts timestamp );
现在让我们用一些数据填充它-
INSERT INTO timestamp_test(ts) VALUES(current_timestamp), (current_timestamp+interval '5 days'), (current_timestamp-interval '18 hours'), (current_timestamp+interval '1 year'), (current_timestamp+interval '3 minutes'), (current_timestamp-interval '6 years');
如果您查询表(SELECT*fromtimestamp_test),您将看到以下输出-
现在,为了从时间戳列中提取小时、分钟等,我们使用EXTRACT函数。一些例子如下所示-
SELECT EXTRACT(HOUR from ts) as hour from timestamp_test
输出-
同样-
SELECT EXTRACT(MONTH from ts) as month from timestamp_test
您还可以提取不那么明显的值,例如ISO周或世纪-
SELECT EXTRACT(CENTURY from ts) as century, EXTRACT(WEEK from ts) as week from timestamp_test
要获取可以从时间戳列中提取的完整值列表,请参阅https://www.postgresql.org/docs/9.1/functions-datetime.html