我有一个我要截断的时间戳。我在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具有以下形式:
我的问题是返回值的类型是什么?它总是参数值的类型吗?参数是时间戳的时间戳。参数为日期的日期。
如何找出返回类型?
由于
答案 0 :(得分:6)
来自Oracle参考:
https://docs.oracle.com/cd/B19306_01/server.102/b14200/functions201.htm
TRUNC( date )函数返回日期和时间部分 截断到格式模型 fmt 指定的单位的日期。这个 函数对NLS_ CALENDAR会话参数不敏感。它 根据格里高利历的规则运作。 价值 返回始终是数据类型DATE,即使您指定了不同的 date 的日期时间数据类型。