如何为 'extract from timestmap' 的变量赋值?
how do I assign a value to a variable but of 'extract from timestmap'?
我有一个函数可以在 table 中插入小时和天,但是我不想在周六和周日插入它;为此,我找到了提取代码(来自 timestmap 'YYYY-MM-DD hh24: mi: ss' 的 isodown),但问题是,当将值分配给变量来满足我的条件时,它不会读取它,它会抛出错误。
desde TIMESTAMP;
desde:=TO_TIMESTAMP('2019-06-09 20:00:00', 'YYYY-MM-DD hh24:mi:ss')::TIMESTAMP;
var_fds:=(select cast(extract(ISODOW from timestamp (desde::varchar)) as int));
CASE WHEN var_fds<6 then
...DO SOMETHING
END;
ERROR: error de sintaxis en o cerca de «desde»
LINE 27: ...ds:=(select cast(extract(ISODOW from timestamp (desde::var...
我也试过只把变量 'desde' 不加 varchar 但还是不能识别。
您只需分配表达式的结果:
var_fds := cast(extract(ISODOW from desde) as int);
因为 desde
已经是 timestapm
,所以没有必要转换成不同的东西。
仅常量值需要表达式中的 timestamp
前缀才能使它们成为类型值。
我有一个函数可以在 table 中插入小时和天,但是我不想在周六和周日插入它;为此,我找到了提取代码(来自 timestmap 'YYYY-MM-DD hh24: mi: ss' 的 isodown),但问题是,当将值分配给变量来满足我的条件时,它不会读取它,它会抛出错误。
desde TIMESTAMP;
desde:=TO_TIMESTAMP('2019-06-09 20:00:00', 'YYYY-MM-DD hh24:mi:ss')::TIMESTAMP;
var_fds:=(select cast(extract(ISODOW from timestamp (desde::varchar)) as int));
CASE WHEN var_fds<6 then
...DO SOMETHING
END;
ERROR: error de sintaxis en o cerca de «desde»
LINE 27: ...ds:=(select cast(extract(ISODOW from timestamp (desde::var...
我也试过只把变量 'desde' 不加 varchar 但还是不能识别。
您只需分配表达式的结果:
var_fds := cast(extract(ISODOW from desde) as int);
因为 desde
已经是 timestapm
,所以没有必要转换成不同的东西。
仅常量值需要表达式中的 timestamp
前缀才能使它们成为类型值。