如何将字符串字段与postgresql中的日期进行比较?

如何将字符串字段与postgresql中的日期进行比较?,postgresql,Postgresql,我在表中有一个字符串字段,其值是日期格式,如:2020-12-08T18:06:55.132Z或2020-12-08T18:06:55.132+11:00 如何根据日期搜索此字段?如从my_表中选择*,时间戳为“2020-12-08T00:00:00”您可以尝试以下操作: SELECT * FROM my_table WHERE to_timestamp(timestamp,'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') > '20

我在表中有一个字符串字段,其值是日期格式,如:
2020-12-08T18:06:55.132Z
2020-12-08T18:06:55.132+11:00


如何根据日期搜索此字段?如
从my_表中选择*,时间戳为“2020-12-08T00:00:00”

您可以尝试以下操作:

SELECT *
FROM my_table
WHERE to_timestamp(timestamp,'YYYY-MM-DD"T"HH24:MI:SS.MS"Z"') > '2020-12-08T00:00:00'
编辑:

更简单的,不依赖于时间戳格式:

SELECT *
FROM my_table
WHERE timestamp::timestamp > '2020-12-08T00:00:00'

我收到此错误
错误:源字符串中“YYYY”的值超出范围详细信息:值必须在-2147483648到2147483647的范围内。我已编辑了使用“to_时间戳”而不是“to_日期”的答案。关于您的错误,您是否有导致问题的条目?因为当我尝试使用您的示例日期时(通过将
'2020-12-08T18:06:55.132Z'
而不是
时间戳,它可以工作),我在回答中添加了另一个不依赖于给定格式的查询,它可能工作得更好。两者都是带时区的有效时间戳,为什么要使用字符串(text/char/varchar)首先?因为它可以是不同的日期格式