Tableau Prep连接Oracle数据源时自定义SQL精确日期语法咨询
Oracle数据源下Tableau Prep自定义SQL的精确日期语法修正
你之前用的{ts'2022-12-31 00:00:00'}是ODBC风格的时间戳语法,Oracle数据库不支持这种写法,以下是两种适配Oracle的正确语法:
方法1:使用TO_DATE函数(兼容所有Oracle版本)
通过TO_DATE将字符串转换为Oracle DATE类型,指定匹配的日期格式:
and (invc_date > TO_DATE('2022-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS') or drft_date > TO_DATE('2022-12-31 00:00:00', 'YYYY-MM-DD HH24:MI:SS') or drft_date is null)
HH24表示24小时制,避免因12小时制导致的时间歧义
方法2:使用ANSI日期/时间戳字面量(Oracle 12c及以上版本支持)
如果你的Oracle版本是12c或更高,可以直接使用ANSI标准的日期字面量,写法更简洁:
针对DATE类型字段
and (invc_date > DATE '2022-12-31' or drft_date > DATE '2022-12-31' or drft_date is null)
DATE '2022-12-31'默认代表当天的00:00:00,和原需求的时间点一致。
针对TIMESTAMP类型字段
如果invc_date或drft_date是TIMESTAMP类型,用TIMESTAMP字面量更匹配:
and (invc_date > TIMESTAMP '2022-12-31 00:00:00' or drft_date > TIMESTAMP '2022-12-31 00:00:00' or drft_date is null)
内容的提问来源于stack exchange,提问作者Kathryn Moore
相关产品推荐
相关产品推荐

