TRUNC_TIMESTAMP 标量函数

TRUNC_TIMESTAMP 标量函数返回一个 TIMESTAMP ,该 TIMESTAMP 是截断为另一个自变量 (format-string) 指定的单位的自变量 (expression)。

Read syntax diagramSkip visual syntax diagramTRUNC_TIMESTAMP(expression ,'DD',format-stringlocale-name )

该模式是 SYSIBM。

如果未指定 format-字符串 ,那么 表达式 将截断为最接近的日期,就像为 format-字符串指定了 'DD' 一样。

expression
返回值 以下内置数据类型之一:DATE 或 TIMESTAMP。 的表达式
format-string
返回一个实际长度不大于 255 bytes的内置字符串数据类型的表达式。 format-string 中的 format 元素指定应如何截断 expression 。 例如,如果 format-string'DD',那么 expression 表示的时间戳记将截断为最接近的日期。 从字符串中除去前导空格和尾部空格,结果子串必须是时间戳记的有效格式元素 (SQLSTATE 22007)。 缺省值为 'DD'

format-string 的允许值列示在 ROUND 函数描述中的格式元素表中。

locale-name
一个字符常量,用于指定使用格式模型值 DAY、DY 或 D 时用于确定一周第一天的语言环境。 语言环境名称 的值不区分大小写,并且必须是有效的语言环境 (SQLSTATE 42815)。 有关有效语言环境及其命名的信息,请参阅 SQL 和 XQuery 的语言环境名称。 如果未指定 locale-name ,那么将使用专用寄存器 CURRENT LOCALE LC_TIME 的值。

该函数的结果是具有与 表达式相同的时间戳记精度的 TIMESTAMP。 结果可以为空; 如果任何自变量为空,那么结果为空值。

该函数的结果是 TIMESTAMP ,其时间戳记精度为:
  • p (当表达式的数据类型为 TIMESTAMP (p) 时)
  • 0 (当表达式的数据类型为 DATE 时)
  • 6 否则
结果可以为空; 如果任何自变量为空,那么结果为空值。

注意

  • 确定性: TRUNC_TIMESTAMP 是确定性函数。 但是,函数的以下调用取决于专用寄存器 CURRENT LOCALE LC_TIME 的值。
    • 当未显式指定 locale-name 并且下列其中一项为 true 时,截断日期或时间戳记值:
      • format-string 不是常量
      • format-string 是一个常量,并且包含语言环境敏感的格式元素
      只要不能使用专用寄存器,就不能使用依赖于专用寄存器值的函数调用 (SQLSTATE 42621 , 428EC或 429BX)。

示例

设置主变量 TRNK_TMSTMP ,将当前年份舍入为最接近的年份值。

     SET :TRNK_TMSTMP = TRUNC_TIMESTAMP('2000-03-14-17.30.00', 'YEAR'); 
主变量 TRNK_TMSTMP 设置为值 2000-01-01-00.00.00.000000。