### 11.2.6时间值的小数秒

MySQL对[`时间`](time.html),[`约会时间`](datetime.html)和[`时间戳`](datetime.html)精度高达微秒（6位）的值：

-   要定义包含小数秒部分的列，请使用以下语法`*`输入你的名字`*(*`fsp`*)`哪里*`输入你的名字`*是[`时间`](time.html),[`约会时间`](datetime.html)或[`时间戳`](datetime.html)和*`fsp`*是小数秒的精度。例如：

    ```
    CREATE TABLE t1 (t TIME(3), dt DATETIME(6));
    ```

    这个*`fsp`*值（如果给定）必须在0到6之间。值为0表示没有小数部分。如果省略，默认精度为0。（为了与以前的MySQL版本兼容，这与标准SQL默认值6不同。）

-   插入[`时间`](time.html), [`日期`](datetime.html)或[`时间戳`](datetime.html)在同一类型的列中包含小数秒部分但小数位数较少的值会导致舍入。考虑创建并填充的表如下：

    ```
    CREATE TABLE fractest( c1 TIME(2), c2 DATETIME(2), c3 TIMESTAMP(2) );
    INSERT INTO fractest VALUES
    ('17:51:04.777', '2018-09-08 17:51:04.777', '2018-09-08 17:51:04.777');
    ```

    时间值以舍入方式插入表格：

    ```
    mysql> SELECT * FROM fractest;
    +-------------+------------------------+------------------------+
    | c1          | c2                     | c3                     |
    +-------------+------------------------+------------------------+
    | 17:51:04.78 | 2018-09-08 17:51:04.78 | 2018-09-08 17:51:04.78 |
    +-------------+------------------------+------------------------+
    ```

    当这种舍入发生时，不会给出警告或错误。这种行为遵循SQL标准。

    要插入带有截断的值，请启用[`时间截短分数`](sql-mode.html#sqlmode_time_truncate_fractional)SQL模式：

    ```
    SET @@sql_mode = sys.list_add(@@sql_mode, 'TIME_TRUNCATE_FRACTIONAL');
    ```

    启用该SQL模式后，将使用截断插入时态值：

    ```
    mysql> SELECT * FROM fractest;
    +-------------+------------------------+------------------------+
    | c1          | c2                     | c3                     |
    +-------------+------------------------+------------------------+
    | 17:51:04.77 | 2018-09-08 17:51:04.77 | 2018-09-08 17:51:04.77 |
    +-------------+------------------------+------------------------+
    ```

-   采用时态参数的函数接受带小数秒的值。时间函数的返回值包括小数秒（视情况而定）。例如[`现在（）`](date-and-time-functions.html#function_now)with no argument返回当前日期和时间，不带小数部分，但使用0到6之间的可选参数指定返回值包含该数字中的小数秒部分。

-   时态文字的语法生成时态值：`日期'*`str`*'`, `时间到了*`str`*'`和`时间戳'*`str`*'`，以及ODBC语法等价物。如果指定，结果值包括一个尾随的小数秒部分。以前，时态类型关键字被忽略，这些构造产生了字符串值。看见[标准SQL和ODBC日期和时间文本](date-and-time-literals.html#date-and-time-standard-sql-literals)
