我正在尝试将时间戳转换为数字,但它无法返回第二个值。
查看日期2012/01/04 00:00:21我期待以下代码返回例如20100104000021。 相反,我得到20100104000000,最后21被转换为00.这发生在所有记录中,我不确定为什么。
to_number(TO_CHAR(p_timestamp,'YYYYMMDDHH24MISS'))
有人可以提出建议吗?
编辑:我已经删除了CAST,但我仍然遇到同样的问题。答案 0 :(得分:0)
未正确使用CAST功能。您可以删除它,如下:
SELECT to_number(TO_CHAR(p_timestamp,'YYYYMMDDHH24MISS')) FROM YourTable;
答案 1 :(得分:0)
您应该使用To_Number
功能:
select To_Number(To_Char(p_timestamp, 'YYYYMMDDHH24MISS'))
from MyTable
或cast
到适当的数字:
-- change Number(20) to required type
select Cast(To_Char(p_timestamp, 'YYYYMMDDHH24MISS') as Number(20))
from MyTable
P.S。 (附注):在Oracle中使用VarChar2
代替VarChar