---
title: "TIMESTAMP 数据类型 - OceanBase 数据库 V4.4.0 | OceanBase 文档中心"
description: "TIMESTAMP 数据类型 TIMESTAMP 数据类型是 DATE 数据类型的扩展，用于存储 DATE 数据类型的年、月、日、时、分和秒等信息。本文主要介绍 TIMESTAMP 数据类型的语法、参数和使用说明。 语法 TIMESTAMP [(scale)] 参数 TIMESTAMP[(scale)] 的范围和精确…"
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.4.0

# TIMESTAMP 数据类型

更新时间：2025-09-14 20:23:57

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.4.0/zh-CN/700.reference/500.sql-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/300.basic-elements-of-oracle-mode/100.built-in-data-types-of-oracle-mode/400.date-time-and-interval-data-types-of-oracle-mode/300.timestamp-data-type-of-oracle-mode.md)  

TIMESTAMP 数据类型是 DATE 数据类型的扩展，用于存储 DATE 数据类型的年、月、日、时、分和秒等信息。本文主要介绍 TIMESTAMP 数据类型的语法、参数和使用说明。

## 语法

```sql
TIMESTAMP [(scale)]

```

## 参数

`TIMESTAMP[(scale)]` 的范围和精确度取决于 `scale` 的值，取值范围为 [0,9]。最大值为 9（纳秒，即秒数精确至小数点 9 位），最小值为 0（秒，即秒数精确至小数点 0 位），默认值为 6。

## 使用说明

`TIMESTAMP` 时间戳数据类型常用于存储时间精确度高和不需要考虑时区变换的数据。取值范围为 `0001-01-01 00:00:00.000000000` ~ `9999-12-31 23:59:59.999999999`。

`TIMESTAMP` 数据类型的默认输入输出格式由 `NLS_TIMESTAMP_FORMAT` 决定，运行以下 SQL 语句查看默认格式：

```sql
SELECT @@NLS_TIMESTAMP_FORMAT FROM DUAL;

```

返回结果如下：

```sql
DD-MON-RR HH.MI.SSXFF AM

```

如果需要自定义数据的格式，可以使用转换函数。在插入数据时，可以通过函数 TO_TIMESTAMP (char,fmt) 指定数据的输入格式。查询数据时，可以通过函数 TO_CHAR (datetime,fmt) 指定数据的输出格式。这两个转换函数会将字符串转化为参数 `fmt` 中定义的格式。在 `fmt` 未指明的情况下，使用默认格式。

## 示例

- 在表 `Timestamp_Sample` 中创建了数据类型为 `TIMESTAMP` 的两列 `timestp1` 和 `timestp2`，并且为 `timestp2` 指定了时间的精度为 3。向两列同时使用 `TO_TIMESTAMP(string, format)` 插入日期值 **2020-01-01 11:00:00**。从结果中可以看到 `timestp1` 由于没有指定 `scale` 的值，所以结果时间精度默认为 6 位，`timestp2` 在指定后精度为 3 位。

  ```sql
  obclient> CREATE TABLE Timestamp_Sample(timestp1 TIMESTAMP, timestp2 TIMESTAMP(3));
  Query OK, 0 rows affected

  obclient> INSERT INTO Timestamp_Sample(timestp1,timestp2) VALUES
      (TO_TIMESTAMP('2020-01-01 11:00:00','YYYY-MM-DD HH24:MI:SS'),
       TO_TIMESTAMP('2020-01-01 11:00:00','YYYY-MM-DD HH24:MI:SS'));
  Query OK, 1 row affected

  obclient> SELECT * FROM Timestamp_Sample;
  +------------------------------+---------------------------+
  | TIMESTP1                     | TIMESTP2                  |
  +------------------------------+---------------------------+
  | 01-JAN-20 11.00.00.000000 AM | 01-JAN-20 11.00.00.000 AM |
  +------------------------------+---------------------------+
  1 row in set

  ```
 - 使用函数 `TO_CHAR (datetime,fmt)` 指定输出格式。

  ```sql
  obclient> SELECT TO_CHAR(TO_TIMESTAMP_TZ('25-FEB-20 11:00:00 AM America/Los_Angeles','DD-MON-RR HH:MI:SSXFF PM TZR'),'YYYY-MM-DD HH:MI:SSXFF PM TZR') Timestamp
  FROM DUAL;
  +------------------------------------------------------+
  | Timestamp                                            |
  +------------------------------------------------------+
  | 2020-02-25 11:00:00.000000000 AM America/Los_Angeles |
  +------------------------------------------------------+
  1 row in set

  ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
