gpt4 book ai didi

sql - Postgres -> [22007] 错误 : invalid input syntax for type timestamp: ""

转载 作者:行者123 更新时间:2023-11-29 11:29:31 24 4
gpt4 key购买 nike

我有一个表,将多种数据类型存储为字符串。有时这个值是一个代表时间戳的字符串。下面的查询是为了在字段名(在 RetsProvider 中指定)上连接 RetsEntry 和 RetsProvider 表,然后过滤掉条目时间戳在两次之间的“systemid”列值。

SELECT
*
FROM (
SELECT
systemid,
cast(value AS TIMESTAMP) AS valueTS
FROM cabarets.retsentry, cabarets.retsprovider
WHERE cabarets.retsentry.providername = cabarets.retsprovider.name
AND cabarets.retsentry.systemname = cabarets.retsprovider.lastupdatefield) AS foo
WHERE foo.valueTS <= now();

但是,当我运行它时,我收到了错误消息。

[2013-01-09 14:04:30] [22007] ERROR: invalid input syntax for type timestamp: " "

当我自己运行子查询时,我得到这样的数据......

SELECT
systemid,
cast(value AS TIMESTAMP) AS valueTS
FROM cabarets.retsentry, cabarets.retsprovider
WHERE cabarets.retsentry.providername = cabarets.retsprovider.name
AND cabarets.retsentry.systemname = cabarets.retsprovider.lastupdatefield

这样的输出...

systemid    valuets
'4705683' '2012-11-08 01:37:45'
'259534632' '2012-11-15 20:40:52'
'259536713' '2012-10-16 10:57:40'
'65815875' '2012-10-28 22:36:00'
'259540896' '2012-10-16 09:59:22'
'4707500' '2012-11-10 01:44:58'

问题是 postgres 不允许您基于作为转换字符串列别名的列添加 where 子句吗?

最佳答案

您是否尝试过转换WHERE 子句:

WHERE cast(foo.valueTS AS TIMESTAMP) <= now();

您是否也尝试过使用 CURRENT_TIMESTAMP 而不是 now()

除非有其他数据问题,否则不确定它可能是什么。

关于sql - Postgres -> [22007] 错误 : invalid input syntax for type timestamp: "",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14246567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com