雪花任务导致查询时区错误
Snowflake Tasks causing error in timezone in queries
我是 运行 存储过程中的一个简单插入查询,其中包含 to_timeatamp_ntz("column value")
以及其他列。
当我 运行 使用雪花 UI 并使用我的帐户登录时,这很好用。
当我使用我的 visual studio 实例中的 python 脚本调用它时,这工作正常。
同一个存储过程在被计划任务调用时失败。
我在想这是否与用户的 'System' 时区与我的时区有关。
Execution error in store procedure LOAD_Data(): Failed to cast variant
value "2019-11-27T13:42:03.221Z" to TIMESTAMP_NTZ At
Statement.execute, line 24 position 57
我试图在任务和存储过程中提供时区作为会话参数,但似乎没有解决这个问题。有什么想法吗?
我猜(因为你没有包含导致错误的 SQL 语句)你试图在创建 Statement
对象时绑定 Date
对象.那不行。
您可以绑定的唯一参数是数字、字符串、null
,以及您只能从结果集中获得的特殊 SfDate
对象(据我所知)。大多数其他参数必须在绑定之前使用 mydate.toJSON()
、JSON.stringify(myobj)
等转换为 string
,例如:
var stmt = snowflake.createStatement(
{ sqlText: `SELECT :1::TIMESTAMP_LTZ NOW`, binds: [(new Date).toJSON()] }
);
Date
对象错误可能会产生误导,因为导致错误的 Date
对象可以转换并显示为错误消息中的字符串。
我发现了问题:
我的任务使用的复制粘贴效果与此类似:
CREATE TASK TASK_LOAD_an_sp
WAREHOUSE = COMPUTE_WH
TIMEZONE = 'US/Eastern'
SCHEDULE = 'USING CRON 0/30 * * * * America/New_York'
TIMESTAMP_INPUT_FORMAT = 'YYYY-MM-DD HH24'
AS
Call LOAD_an_sp();
时间戳输入格式导致此问题。
我是 运行 存储过程中的一个简单插入查询,其中包含 to_timeatamp_ntz("column value")
以及其他列。
当我 运行 使用雪花 UI 并使用我的帐户登录时,这很好用。
当我使用我的 visual studio 实例中的 python 脚本调用它时,这工作正常。
同一个存储过程在被计划任务调用时失败。
我在想这是否与用户的 'System' 时区与我的时区有关。
Execution error in store procedure LOAD_Data(): Failed to cast variant value "2019-11-27T13:42:03.221Z" to TIMESTAMP_NTZ At Statement.execute, line 24 position 57
我试图在任务和存储过程中提供时区作为会话参数,但似乎没有解决这个问题。有什么想法吗?
我猜(因为你没有包含导致错误的 SQL 语句)你试图在创建 Statement
对象时绑定 Date
对象.那不行。
您可以绑定的唯一参数是数字、字符串、null
,以及您只能从结果集中获得的特殊 SfDate
对象(据我所知)。大多数其他参数必须在绑定之前使用 mydate.toJSON()
、JSON.stringify(myobj)
等转换为 string
,例如:
var stmt = snowflake.createStatement(
{ sqlText: `SELECT :1::TIMESTAMP_LTZ NOW`, binds: [(new Date).toJSON()] }
);
Date
对象错误可能会产生误导,因为导致错误的 Date
对象可以转换并显示为错误消息中的字符串。
我发现了问题: 我的任务使用的复制粘贴效果与此类似:
CREATE TASK TASK_LOAD_an_sp
WAREHOUSE = COMPUTE_WH
TIMEZONE = 'US/Eastern'
SCHEDULE = 'USING CRON 0/30 * * * * America/New_York'
TIMESTAMP_INPUT_FORMAT = 'YYYY-MM-DD HH24'
AS
Call LOAD_an_sp();
时间戳输入格式导致此问题。