我有这个疑问,那就是一直给我一些问题,它看起来像这样:如何计算两个日期的持续时间?
UPDATE servicecontracts
SET planned_duration = (to_char(due_date) - to_char(start_date) + 1)
,actual_duration =''
,progress = NULL
WHERE servicecontractsid = '263'
经过一番研究,我设法弄清楚这个查询试图做的,它只是试图找到计划的持续时间,通过减去到期日期和开始日期。为什么,这是试图通过减去字符串来做到这一点,我不知道。另外,to_char
函数需要第二个参数。
所以,无论如何,现在我需要找到planned_duration
,但我该怎么做。根据Postgresql文档,to_char
函数没有返回整数的选项,如果将其设置为返回文本,然后如果尝试使用显式强制转换将该字符串转换为整数(如::integer
),则会出错因为一个整数在那里不能有冒号。
那么,有没有办法让to_char
返回一个以某种方式表示日期的整数,然后减去这两个值? 如果不是,我该怎么做才能做到这一点?
但是你不能像这样将间隔转换为int。看我的文章/手册。 –
哈哈,哦,我,我不知道这是如此简单,谢谢。 – zermy
@ErwinBrandstetter - 你介意解释为什么?我刚刚测试'select('2011-10-04':: date - '2011-08-04':: date):: int'正确返回了'61' –