我需要将一串“日期”转换为ISO8601时间戳,该时间戳位于为每条记录分配的时区中。
我现在的工作是这样的:
TO_CHAR(TO_TIMESTAMP(TO_CHAR(mp.creation_date, 'YYYY-MM-DD HH24:MI:SS')) AT TIME ZONE WL.TIMEZONE_CODE, 'YYYY-MM-DD"T"HH24:MI:SS.ff3TZH:TZM')
这很好,但必须在20多个领域这样做。
所以我想知道是否有可能创建一个本地函数,命名为类似TO_ISO8601(timestamp, time_zone)
的东西。
1条答案
按热度按时间tsm1rwdh1#
如果我没有理解错的话,这就是您现在所拥有的(尽管进行了一些简化,以便避免(不必要的)数据类型转换):
如果您建立接受日期值和时区代码的函数:
然后将其用作
如果你有一个只读访问权限,那么你将不能创建一个函数。但是,CTE(正如你提到的)来拯救!