比较随时间戳变化的字符

Posted

技术标签:

【中文标题】比较随时间戳变化的字符【英文标题】:Compare a character varying with a timestamp 【发布时间】:2019-01-18 22:05:39 【问题描述】:

我正在尝试比较一个在 postgresSQL 中随时间戳变化的字符。

我想获取当前时间之前的所有值与字符变化时间戳相比。

这样比较正确吗?

WHERE to_timestamp('2018-12-25T06:00:00+01:00', 'YYYY-MM-DD HH24:MI:SS') < now()

【问题讨论】:

【参考方案1】:

不完全是。文字中有应该解析的时区值。比较:

select
    to_timestamp('2018-12-25T06:00:00+01:00', 'YYYY-MM-DD HH24:MI:SS') as "seems ok",
    to_timestamp('2018-12-25T07:00:00+02:00', 'YYYY-MM-DD HH24:MI:SS') as "but this is wrong!",
    to_timestamp('2018-12-25T06:00:00+01:00', 'YYYY-MM-DD HH24:MI:SS+TZH:TZM') as "ok",
    to_timestamp('2018-12-25T07:00:00+02:00', 'YYYY-MM-DD HH24:MI:SS+TZH:TZM') as "ok too"

        seems ok        |   but this is wrong!   |           ok           |         ok too         
------------------------+------------------------+------------------------+------------------------
 2018-12-25 06:00:00+01 | 2018-12-25 07:00:00+01 | 2018-12-25 06:00:00+01 | 2018-12-25 06:00:00+01
(1 row)

【讨论】:

以上是关于比较随时间戳变化的字符的主要内容,如果未能解决你的问题,请参考以下文章

如何检查到 UNIX 时间戳之间是不是有时间变化

错误:列 <名称> 的类型是没有时区的时间戳,但表达式的类型是字符变化

从 BigQuery 中的时间戳数据类型中获取每月前 3 个标签数量

MySQL日期 字符串 时间戳互转

网页前端JS呈现时间戳为与当前时间比较结果

mysql中的date类型直接比较大小是按照字符串比较还是时间戳