检查 redis 调用中的 nil 值不起作用

我想要能够检查来自 redis hash 的值 date 是否为 nil(也就是账户已激活)

local account = {}
local accountIds = redis.call('smembers', accounts)
for i, v in ipairs (accountIds)

    local accountDetails = redis.call('HMGET', 'accountHash' .. v, 'name', 'id', 'date')

    local date = accountDetails[3]

    if (date == nil) then
         table.insert(account, v)
         table.insert(account, list)
    end
end

当我在循环时在 java 端打印 date 时,我得到这样的输出:

2018-01-15 00:00:00.0, 2017-02-27 00:00:00.0, null, 2017-03-31 00:00:00.0, 2017-02-27 00:00:00.0, 2018-01-15 00:00:00.0, null,

所以 date 的值为空,但我的 nil 检查每次都被跳过。我也尝试过:

if (date == 'nil') then
if (date == '') then
if (date == 'null') then
if (accountDetails[3] == nil) then
...

我做错了什么?

点赞