问题:
要用sql 计算两个字段的时间差,字段存储字符串类型的,不是时间戳 是 把时间 按照"yyyymmddmimiss"储存的 ,有些还是空值
1 先把空值重置成一个时间
用decode()函数,
decode(字段A,值1,值2,值3),
字段A 值1 是判断条件 为真 取值2 为假 取值3
例如: 字段 time 数据库里的值是 20
decode(time, 20 , 50, 60) 这里 得到的值是 50
字段 time 数据库里的值是 20
decode(time, 30 , 50, 60) 这里得到的值是 60
当然还有多值的情况这里就不一一举例说明了 例如
decode(字段,值1 ,值2 ,值3… 值n)
2 先把字符类型的转换为时间类型了
我们用to_date()函数
以时间:2007-11-02 13:45:25为例
to_date(‘2007-11-02 13:45:25’,‘yyyy-mm-dd hh24:mi:ss’)
就行了得到的是时间类型了
这里的得到的格式是标准格式 可以在转换但是我们计算时间差是可以用这个格式的
3 计算时间差
ROUND(TO_NUMBER(时间1-时间2)) * 24 * 60
这里我是先变成数字在计算得出得