TO_DATE 可以使用 return 时间戳吗?
Can TO_DATE function return a TIMESTAMP?
可以以任何形式 TO_DATE
函数 return 和 TIMESTAMP
吗?示例:
我有以下输入:'2019-05-31 13:15:25.000000000'
我想使用 TO_DATE
而不是 TO_TIMESTAMP
.
结果是 '2019-05-31 13:15:25'
我试过了:
select to_date(substr('2019-05-31 13:15:25.000000000', 1, 19), 'YYYY-MM-DD HH24:MI:SS') from dual;
但是它 returns:
31/05/2019
to_date
returns一个date
。如果你需要 timestamp
,你应该使用 to_timestamp
。
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(...)
如果您只想这样显示时间戳值,请保留 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
您使用 cast
在 date
和 timestamp
值之间转换。
但是我不确定您的起始数据类型是什么,或者为什么您需要 to_date()
专门用于 return 时间戳。
可以以任何形式 TO_DATE
函数 return 和 TIMESTAMP
吗?示例:
我有以下输入:'2019-05-31 13:15:25.000000000'
我想使用 TO_DATE
而不是 TO_TIMESTAMP
.
'2019-05-31 13:15:25'
我试过了:
select to_date(substr('2019-05-31 13:15:25.000000000', 1, 19), 'YYYY-MM-DD HH24:MI:SS') from dual;
但是它 returns:
31/05/2019
to_date
returns一个date
。如果你需要 timestamp
,你应该使用 to_timestamp
。
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(...)
如果您只想这样显示时间戳值,请保留 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
您使用 cast
在 date
和 timestamp
值之间转换。
但是我不确定您的起始数据类型是什么,或者为什么您需要 to_date()
专门用于 return 时间戳。