2014-01-12 98 views
0

我想让合同的时间用完我的数据库。我现在有这个查询,但我似乎无法弄清楚为什么我会为to_expire字段获得NULL。查询运行良好,并产生除计算的timediff以外的预期结果。 cs_start和cs_end是日期字段时间差异返回NULL

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 
+0

简单。作品。应该知道有一个过时的存在。叹息,有时我可以踢自己.. –