
# 时间日期操作符
时间日期操作符如[表1 时间和日期操作符]所示。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
用户在使用时间和日期操作符时，应使用明确的类型前缀修饰对应的操作数，以确保数据库在解析操作数时能够与用户预期一致，避免产生非预期的结果。
举例：以下示例没有明确数据类型，就会出现异常错误。
```
gaussdb=# SELECT date '2001-10-01' - '7' AS RESULT;
ERROR:  
GAUSS-10416: invalid input syntax for type timestamp: "7"
SQLSTATE: 22007
LINE 1: SELECT date '2001-10-01' - '7' AS RESULT;
                                   ^
CONTEXT:  referenced column: result
```
 表1时间和日期操作符 
| 操作符 | 示例                                                                                                                                                                                                                           |
|:---|:---|
| +   | ``` gaussdb=# SELECT date '2001-9-28' + integer '7' AS RESULT; result ------------ 2001-10-05 (1 row) ``` 说明： 在ORA兼容模式下，查询结果为2001-10-05 00:00:00。 |
| +   | ``` gaussdb=# SELECT date '2001-09-28' + interval '1 hour' AS RESULT; result --------------------- 2001-09-28 01:00:00 (1 row) ```                                                                                           |
| +   | ``` gaussdb=# SELECT date '2001-09-28' + time '03:00' AS RESULT; result --------------------- 2001-09-28 03:00:00 (1 row) ```                                                                                                |
| +   | ``` gaussdb=# SELECT interval '1 day' + interval '1 hour' AS RESULT; result ---------------- 1 day 01:00:00 (1 row) ```                                                                                                      |
| +   | ``` gaussdb=# SELECT timestamp '2001-09-28 01:00' + interval '23 hours' AS RESULT; result --------------------- 2001-09-29 00:00:00 (1 row) ```                                                                              |
| +   | ``` gaussdb=# SELECT time '01:00' + interval '3 hours' AS RESULT; result ---------- 04:00:00 (1 row) ```                                                                                                                     |
| -   | ``` gaussdb=# SELECT date '2001-10-01' - date '2001-09-28' AS RESULT; result -------- 3 (1 row) ```                                                                                                                          |
| -   | ``` gaussdb=# SELECT date '2001-10-01' - integer '7' AS RESULT; result --------------------- 2001-09-24 00:00:00 (1 row) ```                                                                                                 |
| -   | ``` gaussdb=# SELECT date '2001-09-28' - interval '1 hour' AS RESULT; result --------------------- 2001-09-27 23:00:00 (1 row) ```                                                                                           |
| -   | ``` gaussdb=# SELECT time '05:00' - time '03:00' AS RESULT; result ---------- 02:00:00 (1 row) ```                                                                                                                           |
| -   | ``` gaussdb=# SELECT time '05:00' - interval '2 hours' AS RESULT; result ---------- 03:00:00 (1 row) ```                                                                                                                     |
| -   | ``` gaussdb=# SELECT timestamp '2001-09-28 23:00' - interval '23 hours' AS RESULT; result --------------------- 2001-09-28 00:00:00 (1 row) ```                                                                              |
| -   | ``` gaussdb=# SELECT interval '1 day' - interval '1 hour' AS RESULT; result ---------- 23:00:00 (1 row) ```                                                                                                                  |
| -   | ``` gaussdb=# SELECT timestamp '2001-09-29 03:00' - timestamp '2001-09-27 12:00' AS RESULT; result ---------------- 1 day 15:00:00 (1 row) ```                                                                               |
| \*  | ``` gaussdb=# SELECT 900 * interval '1 second' AS RESULT; result ---------- 00:15:00 (1 row) ```                                                                                                                             |
| \*  | ``` gaussdb=# SELECT 21 * interval '1 day' AS RESULT; result --------- 21 days (1 row) ```                                                                                                                                   |
| \*  | ``` gaussdb=# SELECT double precision '3.5' * interval '1 hour' AS RESULT; result ---------- 03:30:00 (1 row) ```                                                                                                            |
| /   | ``` gaussdb=# SELECT interval '1 hour' / double precision '1.5' AS RESULT; result ---------- 00:40:00 (1 row) ```                                                                                                            |
   
