You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL中提取timestamp类型字段日部分的方法与报错解决

从Timestamp字段提取日部分的正确SQL写法

我定义了一个类型为**timestamp**的datetime字段,定义语句是datetime timestamp NOT NULL,想要提取其中的日部分,一开始试了三种写法全报错:

extract(DAY FROM TIMESTAMP min(to_char(u.datetime ,'YYYY-MM-DD HH24:MI'))::timestamp)

EXTRACT(DAY FROM TIMESTAMP min(to_char(u.datetime ,'YYYY-MM-DD HH24:MI')))

date_part('day', min(to_char(u.datetime ,'YYYY-MM-DD HH24:MI')))

这些写法的问题在于画蛇添足:先把timestamp转成字符串(to_char),对字符串用min()聚合后得到的还是字符串,extract和date_part没法直接处理字符串类型的时间,自然报错。

后来改成下面的写法就成功运行了:

extract(day from MIN(datetime)) as Day

原因很简单:直接对原始的timestamp字段做MIN(datetime)聚合,得到的结果依然是timestamp类型,再用extract(day from ...)就能正确提取出日部分。

内容的提问来源于stack exchange,提问作者pm1359

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:55:55