Skip to content

使用MySQL模块查询date类型字段出现解析失败的问题 #2034

@pengwanli

Description

@pengwanli

在使用MySQL模块查询date类型字段时,报错:_parse_row_data_binary()error,unsupported field type 10

我是这样操作的:

-- day在MySQL中是date类型
local sql = "select day from tab where day = ? "
local stmt_sql = db:prepare(sql)
local res = db:execute(stmt_sql, "2020-01-01")

error

error("_parse_row_data_binary()error,unsupported field type " .. typ)

_parse_row_data_binary()error,unsupported field type 10

错误出现在_parse_row_data_binary方法的 parser = _binary_parser[typ] 语句中,发现是_binary_parser 中没有定义 [0x0a] 的key

我仿照您 _get_datetime的方法写了个_get_date

_binary_parser[0x0a] = _get_date
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
        value = "2017-09-09"
        --unsupported format
        pos = pos + len
    end
    return value, pos
end

改完查询了一下不报错了,麻烦您看下date的这个问题,谢谢!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions