【发布时间】:2011-11-19 17:54:46
【问题描述】:
在我插入 case when 语句期间,由于我的 case when,oracle 将在任何固定数字后面自动插入另一个“0”。
例如:
INSERT INTO test
(test_date,
testno,
hours)
SELECT '20-OCT-2010',
'1234',
CASE
WHEN Extract(DAY FROM( endtime - starttime )) >= 1 THEN (
Extract(DAY FROM(
endtime - starttime ))
* 24 + Extract
(HOUR FROM(
endtime - starttime
)) )
WHEN starttime IS NULL
AND endtime IS NULL THEN 0
ELSE ( Extract(HOUR FROM( endtime - starttime )) )
END
||''
|| CASE
WHEN endtime IS NULL
AND starttime IS NULL THEN 0
ELSE Extract(MINUTE FROM ( endtime - starttime )) / 60
END AS hours
FROM testtime
我从上述语句执行的结果:
Test_Date TestNo Hours
20-OCT-2010 1234 140
预期结果:
Test_Date TestNo Hours
20-OCT-2010 1234 14
我的小时数据类型是数字 (4,2) 我的错误是因为如果分钟的开始时间和结束时间为空,它将自动在其后面添加一个“0”。即使我将'0'更改为null,它仍然会在后面添加0。
我可以知道还有另一种方法来放置“0”值吗?
谢谢
【问题讨论】: