TO_DATE 函数可以返回 TIMESTAMP 吗?

问题描述 投票:0回答:4

to_date
函数可以以任何形式返回
timestamp
吗?

示例

我有以下输入:

'2019-05-31 13:15:25.000000000'

我想使用 '2019-05-31 13:15:25'

 而不是 
to_date 来获得
to_timestamp

我试过

select to_date(
               substr('2019-05-31 13:15:25.000000000', 1, 19), 
                      'YYYY-MM-DD HH24:MI:SS'
              ) 
  from dual;

但它返回:

31/05/2019
sql oracle date timestamp to-date
4个回答
3
投票

如果您只想显示时间戳值,则保留 style1,否则如果您想转换为截断的日期时间类型值,则使用 style2,如下所示:

with t( ts ) as
(
 select systimestamp from dual
)
select to_char(ts,'YYYY-MM-DD HH24:MI:SS') as style1,
       to_timestamp(to_char(ts,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') as style2,
       ts as original
  from t;

STYLE1              STYLE2                           ORIGINAL
------------------- -------------------------------  -----------------------------------
2019-07-11 17:03:15 11-JUL-19 05.03.15.000000000 PM  11-JUL-19 05.03.15.298742 PM +01:00

2
投票

to_date
返回
date
。如果您需要
timestamp
,则应该使用
to_timestamp


1
投票

TO_DATE
用于读取您的查询中的日期格式,它读取为
YYYY-MM-DD HH24:MI:SS

     to_date(substr('2019-05-31 
    13:15:25.000000000', 1, 19), 'YYYY-. 
     MM-DD HH24:MI:SS') from dual

并给出数据库的默认日期格式而不是默认时间戳格式,以便操作您可以使用的日期

TO_CHAR(to_date(substr('2019-05-31 
        13:15:25.000000000', 1, 19), 'YYYY-. 
         MM-DD HH24:MI:SS'),"your_format") 
           from dual

或使用 to_timestamp(...)


0
投票

您可以使用

date
timestamp
cast
值之间进行转换。

但是我不确定您的起始数据类型是什么,或者为什么您需要

to_date()
专门返回时间戳。

© www.soinside.com 2019 - 2024. All rights reserved.