处理 DATETIME 值

可以将大多数 DATETIME 值互相进行减法运算。

日期可以是任何顺序并且结果是正的或负的 INTERVAL 值。第一个 DATETIME 值确定结果的精度,它包含与第一个操作数相同的时间单位。

如果第二个 DATETIME 值具有的字段比第一个值少,那么会自动增加第二个操作数的精度以与第一个值相匹配。

在下面的示例中,从 DATETIME YEAR TO MINUTE 值中减去 DATETIME YEAR TO HOUR 值,从而得到正的时间间隔值 60 天 1 小时 30 分钟。由于第二个操作数中不包括分钟,所以在执行减法之前,数据库服务器将第二个操作数的分钟值设置为 0。
DATETIME (2003-9-30 12:30) YEAR TO MINUTE
      - DATETIME (2003-8-1 11) YEAR TO HOUR

Result: INTERVAL (60 01:30) DAY TO MINUTE

如果第二个 DATETIME 操作数的字段比第一个操作数多(不管额外字段的精度是大于还是小于第一个操作数中的字段),在计算过程中都会忽略第二个值中附加的时间单位字段。

在下面的表达式(及其结果)中,不将年包括为第二个操作数。因此,自动将年份设置为当前年份(来自系统时钟日历),在此示例中为 2005 年,并且结果 INTERVAL 为负,这指示第二个日期比第一个晚。
DATETIME (2005-9-30) YEAR TO DAY
      - DATETIME (10-1) MONTH TO DAY

Result: INTERVAL (-1) DAY TO DAY [assuming that the current
                                                                    year is 2005]

您可以使用 mi_datetime_compare() 函数比较两个 DATETIME 值。