文档首页/ 云数据库 GaussDB/ 参考(分布式_V2.0-10.x)/ 兼容性说明/ MySQL兼容性说明/ MySQL兼容性M-Compatibility模式/ 数据类型/ 日期与时间数据类型
更新时间:2026-10-21 GMT+08:00
日期与时间数据类型
| 数据类型 | 与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相比规格上存在如下差异:
|
| TIME[(fsp)] | GaussDB支持time数据类型,与MySQL相比规格上存在如下差异:
|
| YEAR[(4)] | - |
- 当给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属性。
父主题: 数据类型