【问题标题】:How to know if a certain timestamp exists in a postgres table cell如何知道某个时间戳是否存在于 postgres 表格单元格中
【发布时间】:2020-03-20 08:23:32
【问题描述】:

有一个带有时区时间戳的 postgres 表(格式为 'YYYY-MM-DD HH24:MI:SS.pppp' 表作为主键。我想检查是否存在某个时间戳(无时区)在 postgres 表中。

我尝试了以下查询:

SELECT DATE_TRUNC ('minute', time_stamp) at time zone tz_name as time_stamp
from table_name WHERE time_stamp at
time zone tz_name = TO_TIMESTAMP('2019-11-25 09:10','YYYY-MM-DD HH24:MI') 

但是它什么也没返回。但是,当我查询间隔时,它将返回值。以下查询返回大于指定值的时间戳:

SELECT DATE_TRUNC ('minute', time_stamp) at time zone tz_name as time_stamp
from table_name WHERE time_stamp at
time zone tz_name >= TO_TIMESTAMP('2019-11-25 09:10','YYYY-MM-DD HH24:MI') 

如何查找表中是否存在时间戳?

【问题讨论】:

    标签: sql postgresql timestamp timezone


    【解决方案1】:

    我相信你可以用这个:

    select * 
    from mytable_time
    where to_char(datec,'yyyy-mm-dd hh24:mi') = '2019-02-11 18:15'
    

    这是DEMO,它向您展示了两个不同列的工作方式:时间戳和日期列。希望这会有所帮助。

    【讨论】:

    • 嗨@bhumika53,非常感谢您的反馈,这行得通吗?
    • 是的,它有效。以下也是有效的。不同之处在于您的方法通过转换为字符串进行比较,而以下是比较时间戳。 SELECT DATE_TRUNC ('minute', time_stamp) at time zone tz_name as time_stamp FROM table_name WHERE DATE_TRUNC ('minute', time_stamp) at time zone tz_name = TO_TIMESTAMP('2019-11-25 09:10','YYYY-MM-DD HH24:MI')
    • 我不知道你为什么要这样做。一侧是字符串,另一侧不是,所以最好只进行一次转换。相信你会更快找到我的方法……试试看……
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2015-07-28
    • 2016-05-04
    • 2017-10-19
    • 2014-02-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多