如何计算2天之间的小时数?
我试过这个:
ABS(TO_DATE(t11.JAM_AKHIR,'HH24:MI:SS') - TO_DATE(t11.JAM_AWAL,'HH24:MI:SS')) * 24 AS SELISIH_JAM,
结果:
| NO| JAM_AWAL | JAM AKHIR | SELISIH |
| 1 | 16.30 | 18.30 | 2 |
| 2 | 18.30 | 06.30 | 12 |
| 3 | 18.30 | 08.00 | 10.5 | (WRONG)
但是,NO 3是错误的。 然后我试了一下:
CASE WHEN TO_DATE(t11.JAM_AWAL,'HH24:MI:SS') < TO_DATE(t11.JAM_AKHIR,'HH24:MI:SS')
THEN
ABS(TO_DATE(t11.JAM_AKHIR,'HH24:MI:SS') - TO_DATE(t11.JAM_AWAL,'HH24:MI:SS')) *24
WHEN TO_DATE(t11.JAM_AWAL,'HH24:MI:SS') > TO_DATE(t11.JAM_AKHIR,'HH24:MI:SS')
THEN
ABS(TO_DATE(t11.JAM_AWAL,'HH24:MI:SS') - TO_DATE(t11.JAM_AKHIR,'HH24:MI:SS')) *24
END SELISIH_JAM,
但仍然失败。请帮帮我,谢谢:)
答案 0 :(得分:1)
我认为你需要在jam_akhir的to_date中添加一天,如果它大于jam_awal,例如:
public class OnSetPropertyListener<DllClass>
{
public void OnSetProperty(PropertyInfo propertyInfo, DllClass instance)
{
// set another value, for example: "new value"
}
}
答案 1 :(得分:1)
只是较短的选择; - )
<强> demo 强>
select no, jam_akhir, jam_awal,
mod (24 *(to_date(jam_akhir, 'hh24:mi') - to_date(jam_awal, 'hh24:mi') ) + 24, 24)
from t11