mirror of
https://github.com/cloudwu/skynet.git
synced 2026-07-24 12:20:41 +00:00
* 增加mysql使用execute方法解析date格式数据 (#2035)
* * 增加mysql使用execute方法解析date格式数据 * 优化mysql模块解析date失败时处理方式 --------- Co-authored-by: test <test@test.com>
This commit is contained in:
@@ -852,6 +852,20 @@ local function _get_datetime(data, pos)
|
|||||||
return value, pos
|
return value, pos
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function _get_date(data, pos)
|
||||||
|
local len, year, month, day
|
||||||
|
local value
|
||||||
|
len, pos = _from_length_coded_bin(data, pos)
|
||||||
|
if len == 4 then
|
||||||
|
year, month, day, pos = string.unpack("<I2BB", data, pos)
|
||||||
|
value = strformat("%04d-%02d-%02d", year, month, day)
|
||||||
|
else
|
||||||
|
--unsupported format
|
||||||
|
error("_get_date()error,unsupported date format, len is " .. len)
|
||||||
|
end
|
||||||
|
return value, pos
|
||||||
|
end
|
||||||
|
|
||||||
-- 字段类型参考 https://dev.mysql.com/doc/dev/mysql-server/8.0.12/binary__log__types_8h.html enum_field_types 枚举类型定义
|
-- 字段类型参考 https://dev.mysql.com/doc/dev/mysql-server/8.0.12/binary__log__types_8h.html enum_field_types 枚举类型定义
|
||||||
local _binary_parser = {
|
local _binary_parser = {
|
||||||
[0x01] = _get_int1,
|
[0x01] = _get_int1,
|
||||||
@@ -862,6 +876,7 @@ local _binary_parser = {
|
|||||||
[0x07] = _get_datetime,
|
[0x07] = _get_datetime,
|
||||||
[0x08] = _get_int8,
|
[0x08] = _get_int8,
|
||||||
[0x09] = _get_int3,
|
[0x09] = _get_int3,
|
||||||
|
[0x0a] = _get_date,
|
||||||
[0x0c] = _get_datetime,
|
[0x0c] = _get_datetime,
|
||||||
[0x0f] = _from_length_coded_str,
|
[0x0f] = _from_length_coded_str,
|
||||||
[0x10] = _from_length_coded_str,
|
[0x10] = _from_length_coded_str,
|
||||||
|
|||||||
Reference in New Issue
Block a user