为什么Kafka中MySQL的日期时间转换为错误的时间戳(对于小于0100年的日期(?
我有一个带有日期时间列的表,我在其中插入值0078-10-15 10:00:00.0000000,时间戳=277293600000出现在kafka中用于此行(来自在线时间戳转换器的人工日期为15 10 1978,10:00:00(。
MySQL文档中写道:
"包含两位数年份值的日期不明确,因为世纪未知。MySQL使用来解释两位数的年份值这些规则:
70-99之间的年份值变为1970-1999。
00-69范围内的年份值变为2000-2069;
它确实是这样工作的,但数据库中的日期看起来是这样的:0078-10-15 10:00:00.0000000,即指定了世纪。
对于大于0099的年份,一切正常,时间戳-许多数字
Debezium连接器配置:
{
"name": "source-param-datetime",
"config": {
"connector.class" : "io.debezium.connector.mysql.MySqlConnector",
"database.hostname": "hostname",
"database.port": "3306",
"database.user": "user",
"database.password": "password",
"database.server.id" : "12",
"database.server.name": "erp_pd",
"database.include.list": "bgcrm_v21",
"table.include.list": "bgcrm_v21.param_datetime",
"database.history.kafka.bootstrap.servers": "server",
"database.history.kafka.topic": "dbhistory.erp.param_datetime",
"include.schema.changes": "false",
"snapshot.mode": "schema_only",
"snapshot.locking.mode" : "minimal_percona",
"transforms": "unwrap",
"transforms.unwrap.type": "io.debezium.transforms.ExtractNewRecordState",
"transforms.unwrap.drop.tombstones" : "false",
"key.converter":"io.confluent.connect.avro.AvroConverter",
"key.converter.schema.registry.url":"http://localhost:8081",
"value.converter":"io.confluent.connect.avro.AvroConverter",
"value.converter.schema.registry.url":"http://localhost:8081",
"name": "source-param-datetime"
}
}
我觉得问题出在time.precision.mode并尝试不同的值对于这种设置,但它没有帮助。
"使能时间调节器":"false";
https://debezium.io/documentation/reference/stable/connectors/mysql.html#mysql-属性启用时间调整器