0

我有一个表,其中时间戳存储为varchar格式20120419170525。该列也有一些空值。

SELECT查询中,我想申请NVL(my_timestamp, to_timestamp(SYSDATE)),如果值为 null 那么它应该以相同的格式显示当前时间戳。

我在执行查询 sql 语句之前尝试了这个语句:

alter session set nls_date_format = 'YYYYMMDDHH24MISS'.

但没有得到想要的结果。我得到这种格式YYYY MM DD HH24:MI:SS

有什么解决方案或者我需要编写一个程序来支持这种格式?

4

2 回答 2

3

你可以这样做:

select nvl(my_timestamp, to_char(systimestamp, 'yyyymmddhh24miss'))
from your_table

但是由于您并没有真正使用“时间戳部分”,因此您可以使用 sysdate:

select nvl(my_timestamp, to_char(sysdate, 'yyyymmddhh24miss'))
from your_table
于 2012-04-19T13:55:31.810 回答
0

时间戳有单独的格式。它是NLS_TIMESTAMP_FORMAT。您可以像NLS_DATE_FORMAT为会话设置一样设置它。

于 2012-04-19T15:00:53.893 回答