【问题标题】:Concatenate date and time fields and turn into datetime postgresql连接日期和时间字段并变成日期时间 postgresql
【发布时间】:2015-01-08 13:34:27
【问题描述】:

我有一张日期和时间字段分开的表格

表1

data           hora            id
2015-01-01    11:40:06          1 
2015-01-01    15:40:06          2
2015-01-02    15:40:06          3 
2015-01-05    10:40:06          4 
2015-01-05    15:40:06          5
2015-01-06    08:23:00          6

现在我需要查询 2015-01-01 12:00:00 12:00:00 和 2015-01-05 12:00:00 之间的 id,应该返回 2,3,4 的 id。 我正在尝试转换并连接在单个日期时间字段中分隔的日期和时间字段以使用“介于”但我无法达到语法有人可以举个例子吗?

【问题讨论】:

  • 只是为了确保:这些列被定义为 datetime?
  • 为此使用 add + 运算符,而不是通常的串联运算符 (||) postgresql.org/docs/current/static/functions-datetime.html
  • 是定义的日期和时间。
  • 为什么不首先将它们存储为timestamp
  • 您好 Craig,很遗憾数据库已经完好,我无法更改它。 :(

标签: postgresql postgresql-9.3


【解决方案1】:

有效!

SELECT
    *
FROM
    tableA
WHERE
    (dataemissao + hora) BETWEEN (date '2015-01-21' + time '14:00') 
     AND  (date '2015-01-21' + time '18:00')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2020-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多