# 日期与时间数据类型
表1日期与时间数据类型 
| 数据类型               | 与MySQL的差异                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|
| DATE               | GaussDB支持date数据类型，与MySQL相比规格上存在如下差异： 反斜杠\\在MySQL和GaussDB中都视为转义，但MySQL支持\\0，GaussDB暂不支持，因此反斜杠作为分隔符且分隔符后为字符0时GaussDB会报错。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| DATETIME\[(fsp)\]  | GaussDB支持datetime数据类型，与MySQL相比规格上存在如下差异： 反斜杠\\在MySQL和GaussDB中都视为转义，但MySQL支持\\0，GaussDB暂不支持，因此反斜杠作为分隔符且分隔符后为字符0时GaussDB会报错。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| TIMESTAMP\[(fsp)\] | GaussDB支持timestamp数据类型，与MySQL相比规格上存在如下差异： - 反斜杠\\在MySQL和GaussDB中都视为转义，但MySQL支持\\0，GaussDB暂不支持，因此反斜杠作为分隔符且分隔符后为字符0时GaussDB会报错。  - MySQL支持设置explicit_defaults_for_timestamp，当explicit_defaults_for_timestamp设置为off时，对TIMESTAMP类型的字段的默认值、插入NULL等处理为非标准行为。MySQL 5.7下，explicit_defaults_for_timestamp默认值为off；MySQL 8.0下，explicit_defaults_for_timestamp默认值为on。GaussDB不支持设置explicit_defaults_for_timestamp，行为与MySQL设置explicit_defaults_for_timestamp为on时的行为一致。explicit_defaults_for_timestamp相关说明参见表格下方说明中的内容。   |
| TIME\[(fsp)\]      | GaussDB支持time数据类型，与MySQL相比规格上存在如下差异： - 反斜杠\\在MySQL和GaussDB中都视为转义，但MySQL支持\\0，GaussDB暂不支持，因此反斜杠作为分隔符且分隔符后为字符0时GaussDB会报错。  - 当时间类型的时、分、秒、纳秒为0时，GaussDB和MySQL可能存在符号位不同的情况。                                                                                                                                                                                                                                                                                                                                         |
| YEAR\[(4)\]        | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
- GaussDB不支持ODBC语法的字面量： { d 'str' }
  { t 'str' }
  { ts 'str' }
  

- 当给DATETIME、TIME、TIMESTAMP数据类型指定的精度超过其支持的最大精度时，GaussDB会将精度截断成支持的最大精度，MySQL则会报错。
- MySQL中当explicit_defaults_for_timestamp为off时，对TIMESTAMP类型的字段的处理逻辑如下：
  - 未显式指定NULL/NOT NULL属性的字段，将自动添加NOT NULL属性。向此类字段插入NULL值时，会将NULL值替换为当前时间戳。
  
  - 如果未给表中的第一个TIMESTAMP类型的字段指定NULL属性，会自动给该字段添加DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性。
  
  - 如果未给表中的第二个及之后的TIMESTAMP类型的字段指定NULL属性，会自动给该字段添加DEFAULT '0000-00-00 00:00:00'属性。
   
- MySQL中当explicit_defaults_for_timestamp为on时，对TIMESTAMP类型的字段的处理逻辑如下：
  - 向TIMESTAMP类型的字段插入NULL值时，不会将NULL值替换为当前时间戳。
  
  - 未显式指定NULL/NOT NULL属性的字段，将自动添加NULL属性。
  
  - 向指定了NOT NULL属性的字段插入NULL值时，严格模式下报错，宽松模式下将插入'0000-00-00 00:00:00'。
  
  - 不会为任何TIMESTAMP类型的字段自动添加DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP属性。
   
 
