DATE 和 DATETIME 数据值表示零维时间点;INTERVAL 数据值表示 1 维时间范围(具有正值或负值)。DATE 精度总是天的整数计数,但各种字段限定符可以定义 DATETIME 和 INTERVAL 精度。您可使用算术和关系表达式中的 DATE、DATETIME 和 INTERVAL 数据。可以使用另一个 DATETIME 值、INTERVAL 值和当前时间(由关键字 CURRENT 指定)或某个时间单位(通过使用关键字 UNITS)来处理 DATETIME 值。
可以在 DATETIME 值有效的大多数上下文中使用 DATE 值,反之亦然。还可以在 DATETIME 值有效的算术运算中使用 INTERVAL 操作数。此外,可以使两个 INTERVAL 值相加,并可以用一个数来乘或除 INTERVAL 值。
INTERVAL 列可以保存表示两个 DATETIME 值之差或两个 INTERVAL 值之差(或之和)的值。在这两种情况下,结果都是时间范围,该时间范围是一个 INTERVAL 值。相反,如果从 DATETIME 值中加上或减去 INTERVAL 值,那么会生成另一个 DATETIME 值,因为结果是特定时间。
操作数 1 | 运算符 | 操作数 2 | 结果 |
---|---|---|---|
DATE | - | DATETIME | INTERVAL |
DATETIME | - | DATE | INTERVAL |
DATE | + 或 - | INTERVAL | DATETIME |
DATETIME | - | DATETIME | INTERVAL |
DATETIME | + 或 - | INTERVAL | DATETIME |
INTERVAL | + | DATETIME | DATETIME |
INTERVAL | + 或 - | INTERVAL | INTERVAL |
DATETIME | - | CURRENT | INTERVAL |
CURRENT | - | DATETIME | INTERVAL |
INTERVAL | + | CURRENT | DATETIME |
CURRENT | + 或 - | INTERVAL | DATETIME |
DATETIME | + 或 - | UNITS | DATETIME |
INTERVAL | + 或 - | UNITS | INTERVAL |
INTERVAL | * 或 / | NUMBER | INTERVAL |
不允许其他组合。不能使两个 DATETIME 值相加,原因是此操作不会生成特定时间或时间范围。例如:不能将 12 月 25 日与 1 月 1 日相加,但您可以从一个值中减去另一个以了解两者之间的时间跨度。