日期与时间数据类型
MySQL数据库 |
GaussDB数据库 |
差异 |
---|---|---|
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属性。