我正在尝试从我的数据库中获取契约(Contract)到期的时间。我现在有这个查询,但我似乎无法弄清楚为什么 to_expire 字段得到 NULL。查询运行良好,并生成除计算的时间差之外的预期结果。 cs_start 和 cs_end 是日期字段
SELECT cs_start, cs_end, cs_status,
TIMEDIFF(date(now()), cs_start) as to_expire,
GROUP_CONCAT(is_name SEPARATOR '<br /> ') as partners
FROM `contracttoinstitute`
JOIN `institutes`
ON is_id = ctt_institute_id
JOIN `contracts`
on ctt_contract_id = cs_id
WHERE ctt_contract_id
IN (
select ctt_contract_id
from `contracttoinstitute`
where ctt_institute_id = 1
)
AND ctt_institute_id <> 1
GROUP BY ctt_contract_id
ORDER BY cs_id DESC
输出:
cs_start cs_end cs_status to_expire partners
2013-11-06 2014-01-01 signed NULL KATHOLIEKE HOG
...
正如希望获得一些值(value)。不确定应该给出什么 timediff;我第一次尝试使用它。 (我正在寻找一个排序依据的值,以确定契约(Contract)是否即将失效)
最佳答案
尝试使用datediff()
。您超出了 timediff()
的范围,并且似乎仍然需要几天:
SELECT cs_start, cs_end, cs_status,
datediff(date(now()), cs_start) as to_expire,
GROUP_CONCAT(is_name SEPARATOR '<br /> ') as partners
关于mysql - 时差返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21076498/