我试图从数据库中抽出合同用完时间。我现在有了这个查询,但是我似乎无法弄清楚为什么to_expire字段为NULL。查询运行正常,并产生除计算的timediff之外的预期结果。 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
...
希望能得到一些价值。不知道应该给timediff些什么;我第一次尝试使用它。 (我正在寻找一个值进行排序,以便确定合同是否即将失效)
最佳答案
尝试使用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/