【问题标题】:Postgres Concate: Date + Timestamp + Integer of 7Postgres Concat:日期 + 时间戳 + 7 的整数
【发布时间】:2023-03-17 09:29:01
【问题描述】:

我怎样才能将这两列合并并添加整数 7 呢?在 postgres 中。

两列都在表 a_event 中。 start_time 是没有时区数据类型的时间戳。 start_date 是日期数据类型。

目前为止:

SELECT start_time || start_date AS start_date_time
FROM a_event;

这有效,但它显示: 2015-03-06 21:17:162015-02-06

我怎样才能让它简单地显示: 2015-03-06 13:17:16 加上 7 天,因此:2015-03-13 达到预期结果。

【问题讨论】:

  • start_timestart_date 是什么数据类型,为什么不将它们存储在单个 timestamp 列中?
  • 请您edit 给我们一个完整的输入和输出示例。也许也可以将其添加到sqlfiddle.com。在对输入一无所知的情况下,很难说出为什么会得到输出。
  • start_time + interval '7' day 或简单的start_time + 7

标签: postgresql


【解决方案1】:

|| 运算符连接两个字符串,因此 'start_time' 和 'start_date' 列将转换为 text,然后连接起来得到您看到的结果。

您想在开始日期上增加 7 天。很简单:

SELECT start_date + 7 AS start_date_time
FROM a_event;

date 数据类型上,+ 运算符添加天数。

如果要保留开始时间信息,解决方法稍微复杂一些:

SELECT start_time + interval '7 days' AS start_date_time
FROM a_event;

timestamp 数据类型记录自 1970 年 1 月 1 日以来的微秒,因此您必须明确指出要添加 7 天(而不是 7 微秒)的间隔。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-14
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 1970-01-01
    相关资源
    最近更新 更多