gpt4 book ai didi

database - 时间戳类型的输入语法无效

转载 作者:行者123 更新时间:2023-12-02 06:31:02 25 4
gpt4 key购买 nike

在运行下面的代码时,我收到一条错误消息,指出来自admission_datetime的时间戳类型的输入语法无效。

    UPDATE ccsm.stg_demographics_baseline
SET xx_los_days =
(CASE WHEN admission_datetime IS NULL OR
date_trunc('day',admission_datetime) = ''
THEN NULL
WHEN discharge_datetime IS NULL OR
date_trunc('day',discharge_datetime) = ''
THEN date_diff('day', admission_datetime, CURRENT_DATE)
ELSE
date_diff('day', admission_datetime, discharge_datetime)
END);
enter code here

最佳答案

参见date_trunc documentation :

The return value is of type timestamp or interval with all fields that are less significant than the selected one set to zero (or one, for day and month).

所以你不能将它与空字符串进行比较:

date_trunc('day', admission_datetime) = ''

时间戳类型的输入语法无效错误消息涉及空字符串 (''),而不是 admission_datetime 列。

此外,PostgreSQL中没有date_diff函数。只需从另一个时间戳中减去一个时间戳,您就会得到一个间隔结果:

SELECT timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00'

你会得到

interval '1 day 15:00:00'

如果您需要内的差异,请尝试以下操作:

SELECT DATE_PART('day', timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00')

结果是1

参见here有关 PostgreSQL 中类似 DATEDIFF 表达式的示例。

关于database - 时间戳类型的输入语法无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50598266/

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