Snowflake SQL日期时间格式转换求助:适配Zoho插入需求
解决Snowflake SQL日期格式转换问题
你报错的核心原因是用错了函数:
- 如果
LastLoginDate本身是TIMESTAMP/DATETIME类型,TO_TIMESTAMP仅需传入列名,不需要额外格式参数,传两个参数自然会提示参数过多。 - 你的需求是把日期时间值转成指定格式的字符串,而非转成时间戳,应该用
TO_CHAR函数而非TO_TIMESTAMP。
具体解决方案分两种情况:
情况1:LastLoginDate是日期时间类型(TIMESTAMP/DATETIME)
直接用TO_CHAR将其格式化为Zoho需要的字符串格式:
SELECT TO_CHAR(LastLoginDate, 'DD-Mon-YYYY HH24:MI:SS') AS LASTLOGINDATE FROM tablex;
格式说明:
DD:两位日期Mon:三位英文月份缩写(如Oct、Jan)YYYY:四位年份HH24:MI:SS:24小时制的时分秒
情况2:LastLoginDate是字符串类型(如VARCHAR)
需要先将字符串转成时间戳,再格式化为目标字符串:
SELECT TO_CHAR(TO_TIMESTAMP(LastLoginDate, 'YYYY-MM-DD HH24:MI:SS.FFF'), 'DD-Mon-YYYY HH24:MI:SS') AS LASTLOGINDATE FROM tablex;
- 第一步
TO_TIMESTAMP(LastLoginDate, 'YYYY-MM-DD HH24:MI:SS.FFF'):将原格式2022-10-17 17:18:07.000的字符串转成TIMESTAMP类型 - 第二步
TO_CHAR(..., 'DD-Mon-YYYY HH24:MI:SS'):把时间戳转成Zoho支持的格式字符串
执行上述语句后,返回的LASTLOGINDATE就是17-Oct-2022 17:18:07格式的字符串,可直接用于插入Zoho系统。
内容的提问来源于stack exchange,提问作者Scooter-C
相关产品推荐
相关产品推荐

