带有时间戳的Oracle trunc

时间:2014-11-11 09:58:23

标签: sql oracle

我有一个我要截断的时间戳。我在oracle中使用trunc功能。这似乎做了我想要的,但是从文档中它应该只接受 date 而不是时间戳

select TRUNC(TO_DATE('22-AUG-13'), 'YEAR') from dual;
select TRUNC(to_timestamp('2013-08-22 06:00:00','YYYY-MM-DD HH24:MI:SS'), 'YEAR') from dual;

以上两者都返回相同的结果。

我认为它有效,因为时间戳是日期格式的扩展名,引用为here

  

TIMESTAMP数据类型是DATE数据类型的扩展。它   存储DATE数据类型的年,月和日加上小时,   分钟和秒值。它没有时区。 TIMESTAMP数据   type具有以下形式:

我的问题是返回值的类型是什么?它总是参数值的类型吗?参数是时间戳的时间戳。参数为日期的日期。

如何找出返回类型?

由于

1 个答案:

答案 0 :(得分:6)

来自Oracle参考:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions201.htm

  

TRUNC( date )函数返回日期和时间部分   截断到格式模型 fmt 指定的单位的日期。这个   函数对NLS_ CALENDAR会话参数不敏感。它   根据格里高利历的规则运作。 价值   返回始终是数据类型DATE,即使您指定了不同的    date 的日期时间数据类型。