时间戳记算术

时间戳记可以减去,递增或递减。

减去时间戳记

从另一时间戳记 (TS1) 中减去一个时间戳记 (TS2) 的结果是时间戳记持续时间,用于指定两个时间戳记之间的年数,月数,日数,小时数,分钟数,秒数和 小数秒 。 结果的数据类型为 DECIMAL (14 +ss) , 其中 s 是 TS1 和 TS2的最大时间戳记精度。 如果 TS1 大于或等于 TS2,那么将从 TS1中减去 TS2 。 但是,如果 TS1 小于 TS2,那么将从 TS2 中减去 TS1 ,并使结果的符号为负数。 以下过程描述阐明了操作 RESULT = TS1 - TS2中涉及的步骤。

如果 SECOND( TS2,s ) <= SECOND( TS1,s )
,那么 SECOND(RESULT,s) = SECOND( TS1,s ) - SECOND( TS2,s )。

如果 SECOND( ) > SECOND( ) ,则 SECOND(RESULT,s) = 60 + SECOND( ) - SECOND(,) ,MINUTE( ) 递增 1。 TS2,sTS1,s
TS1,sTS2,s
TS2

时间戳记的分钟部分将按规则中的指定
减去时间。

如果 HOUR( ) <= HOUR( ) ,那么 HOUR(RESULT) = HOUR( ) - HOUR( )。 TS2TS1
TS1TS2

如果 HOUR (TS2)> HOUR (TS1)
,那么 HOUR (RESULT) = 24 + HOUR (TS1)-HOUR (TS2)
和 DAY (TS2) 将递增 1。

时间戳记的日期部分将按规则中指定的
减去日期。
从时间戳记 (TS1) 中减去日期 (D1) 的结果与从 TS1中减去 TIMESTAMP (D1) 的结果相同。 同样,从日期 (D2) 中减去一个时间戳记 (TS1) 的结果与从 TIMESTAMP (D2) 中减去 TS1 的结果相同。

递增和递减时间戳记

将持续时间添加到时间戳记或从时间戳记中减去持续时间的结果本身就是时间戳记。 结果时间戳记的精度与时间戳记操作数的精度相匹配。 将按先前定义的方式执行日期和时间算术,但会将溢出或小时数下流传递到结果的日期部分中,该部分必须在有效日期范围内。 分数秒 溢出到秒。 因此,从时间戳记 TIMESTAMP1中减去持续时间 X ,其中 X 是 DECIMAL (14+s,s) 数字等同于表达式:
TIMESTAMP1 - YEAR(X) YEARS - MONTH(X) MONTHS - DAY(X) DAYS
           - HOUR(X) HOURS - MINUTE(X) MINUTES 
           - SECOND(X,s) SECONDS
当减去具有非零刻度,标记的持续时间为 MICROSECOND 或 MICROSECONDS 的持续时间或具有包含秒的分数的值的标记持续时间 SECOND 或 SECONDS 时,将执行减法,就像时间戳记值具有最多 12 个小数秒位一样。 结果值将以时间戳记操作数的时间戳记精度指定给时间戳记值,这可能会导致小数秒数字被截断。