我正在努力争取从我的数据库中用完合同的时间。我现在有这个查询,但我似乎无法弄清楚为什么我为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
...
希望获得一些价值。不确定时间推移应该给予什么;我第一次尝试使用它。 (我正在寻找一个值来排序,以确定合同是否即将失效)
答案 0 :(得分:1)
尝试使用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