我正在从一个RESTful服务中获取JSON主体。其中一个数据是Paid_at:1696484073(编号)。我要把这变成一次约会。
我试过了:
SELECT TO_timestamp( '1970-01-01', 'YYYY-MM-DD' ) + NUMTODSINTERVAL( nvl(l_payment_date,0), 'SECOND' )
into l_payment_date_trans
FROM DUAL;
10/05/23返回,这是不正确的
l_payment_date_str := to_char(l_payment_date);
l_payment_date_trans := TO_DATE(to_char(l_payment_date_str), 'YYYY-MM-DD');
不起作用
SELECT TO_DATE(to_char(l_payment_date_str), 'YYYY-MM-DD')
into l_payment_date_trans
FROM DUAL;
03/02/15我不认为这是正确的。
如何将该数字('l_payment_date')转换为日期并将值赋给l_payment_date_transs?
2条答案
按热度按时间zvms9eto1#
您不需要使用SQL,可以在PL/SQL中完成所有操作。
此外,epoch时间是从UTC时区的午夜1970-01-01开始,因此您需要使用
TIMESTAMP WITH TIME ZONE
:其输出:
除了不在UTC时区之外,你的第一个解决方案是正确的:
其输出:
fiddle
uhry853o2#
为什么你认为你得到的值不对?因为你没看到时间成分?好吧,也许这是关于你的 * 客户端 *,它目前被设置为只显示日期值。如果你正确地设置了它(如下面的例子所示),你会发现它实际上是正确的。