我有一个表,它以秒为整数存储秒数。 我想显示它并将其用作时间或日期。
如果我写这个:
Select Cast(ColAmountofSeconds as Time) as ThisTime From MyTable;
同样:
Select Cast(ColAmountofSeconds as Date) as ThisTime From MyTable;
我收到以下错误:
数据类型转换期间发生溢出。转换错误来自 字符串“14”。
注意“14”是ColAmountofSeconds列中第一行的值。
这在SQL Server中非常自然,我无法相信我花费了大量时间来解决这个问题。
修改
我无法相信这就是答案:
Update MyTable
Set TIMESPENT = time '00:00:00' + ColAmountOfSeconds;
答案 0 :(得分:7)
Firebird cast function不支持将数值转换为日期,时间或时间戳。
您可以利用Firebird在日期和数值之间支持算术的事实,因此您可以像这样编写查询:
select dateadd(second, ColAmountOfSeconds, cast('00:00:00' as time))
from myTable;
--or the equivalent:
select cast(cast('2013-01-01' as timestamp) + cast(ColAmountofSeconds as double precision) / 86400 as TIME)
from myTable;