【问题标题】:Oracle trunc with timestamp带时间戳的 Oracle trunc
【发布时间】:2014-11-11 09:58:23
【问题描述】:

我有一个要截断的时间戳。我在 oracle 中使用trunc 函数。这似乎符合我的要求,但是从文档中它应该只接受 date 而不是 timestamp

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 数据 类型有以下形式:

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

如何知道返回类型?

谢谢

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

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

    TRUNC (date) 函数返回带有时间部分的日期 天被截断为格式模型 fmt 指定的单位。这个 函数对 NLS_CALENDAR 会话参数不敏感。它 按照公历的规则运作。 价值 返回的数据类型始终为 DATE,即使您指定了不同的 日期的日期时间数据类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-07
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 1970-01-01
      相关资源
      最近更新 更多