时差返回NULL

时间:2014-01-12 15:29:49

标签: mysql time

我正在努力争取从我的数据库中用完合同的时间。我现在有这个查询,但我似乎无法弄清楚为什么我为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   
...

希望获得一些价值。不确定时间推移应该给予什么;我第一次尝试使用它。 (我正在寻找一个值来排序,以确定合同是否即将失效)

1 个答案:

答案 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