EXTEND 函数

EXTEND 函数调整 DATETIME 或 DATE 值的精度。

作为它的第一个参数的 DATETIME 或 DATE 表达式不可为 DATE 值的加引号的字符串表示。

如果您未指定 firstlast 限定符,则缺省的限定符为 YEAR TO FRACTION(3)。

如果表达式包含未通过时间单位限定符指定的字段,则丢弃那些字段。

如果 first 限定符指定比表达式中存在的更大的(即,更多有效位的)时间单位,则以 CURRENT 函数返回的值填充新的字段。如果 last 限定符比表达式中存在的更小的(即,更少有效位的)时间单位,则以常量值填充新的字段。以 1 填充丢失的 MONTH 或 DAY 字段,且以 0 填充丢失的 HOUR 或 FRACTION 字段。

在下列表达式中,EXTEND 调用返回带有 YEAR TO SECOND 表达式的 call_dtime 列值:
EXTEND (call_dtime, YEAR TO SECOND)
        
您可使用 EXTEND 函数来执行 DATETIME 值与没有相同时间单位限定符的 INTERVAL 值的加法或减法。下一表达式将文字的 DATETIME YEAR TO DAY 值扩展为 YEAR TO MINUTE 精度,因而可从它减去间隔的 YEAR TO MINUTE 值:
EXTEND (DATETIME (2009-8-1) YEAR TO DAY, YEAR TO MINUTE)
          - INTERVAL (720) MINUTE (3) TO MINUTE
        
您可使用 EXTEND 函数来选择性地更新 DATETIME 值中时间单位的子集。在下一示例中的 UPDATE 语句仅更新 DATETIME YEAR TO MINUTE 列中的 hourminute 时间单位值。
UPDATE cust_calls SET call_dtime = call_dtime -
          (EXTEND(call_dtime, HOUR TO MINUTE) - DATETIME (11:00) 
          HOUR TO MINUTE) WHERE customer_num = 106;
从由 EXTEND 返回的 DATETIME HOUR TO MINUTE 值中减去 11:00 生成一个正的或负的 INTERVAL HOUR TO MINUTE 值。从 call_dtime 列中原始的值减去此差异,在 cust_calls.call_dtime 列中将更新的 hourminute 时间单位值强制为 11:00