v b*_*ale 5 postgresql date-arithmetic
我正在使用以下条件来截断 postgres 中的日期
to_date(to_char(trunc(appointment_date),'YYYYMMDD')||appointment_end_time,''YYYYMMDDHH24:MI:SS')AS tq
Run Code Online (Sandbox Code Playgroud)
我如何在 postgres 中使用它?
奇怪的数据输入,有时需要奇怪的(至少看起来)查询。尝试(参见小提琴)
date_trunc('day',appointment_date)
+ substr(appoinment_end,12)::interval
Run Code Online (Sandbox Code Playgroud)
小智 4
由于您的调用使用“时间”列的to_char()格式,因此您可以将该列直接转换为值,例如使用运算符:。'HH24:MI:SS'time::appointment_end_time::time
要从日期部分appointment_date和时间值构建新的时间戳,只需添加它们:
appointment_date::date + appointment_end_time::time
Run Code Online (Sandbox Code Playgroud)
因此,首先将时间戳转换为日期(没有时间),然后将时间值添加到其中,从而生成.timestamp
请注意,to_date()返回 adate因此您的代码将再次删除刚刚添加的时间部分。to_timestamp()如果您确实想要时间戳作为结果,则需要使用。
回答问题的标题“如何在 Postgres 中截断日期?” (实际上指的是 a timestampnot a date):您可以将其转换为 a date(见上文),也可以将date_trunc()(not trunc()) 与应截断的单位一起使用。但是,date_trunc返回的timestamp 不是值date,因此您无法向结果添加时间。
| 归档时间: |
|
| 查看次数: |
13298 次 |
| 最近记录: |