Sql 如何使用to_number函数在Oracle中的数字中添加前导零
早期的V_开始时间类似于“1:00:00:00”,但现在它以0开头。然后问题来了。现在它返回null。如何解决这个问题。是的,试试看Sql 如何使用to_number函数在Oracle中的数字中添加前导零,sql,database,oracle11g,Sql,Database,Oracle11g,早期的V_开始时间类似于“1:00:00:00”,但现在它以0开头。然后问题来了。现在它返回null。如何解决这个问题。是的,试试看 V_START_TIME V_END_TIME OPERATION_Date STATUS_1 OT_ROOM_ID_1 01:00:00 01:00:00 24-Mar-17 AVAILABLE 1 02:00:00 02:00:00 24-Mar-17 LAPSED 1 03:00:00 03:0
V_START_TIME V_END_TIME OPERATION_Date STATUS_1 OT_ROOM_ID_1
01:00:00 01:00:00 24-Mar-17 AVAILABLE 1
02:00:00 02:00:00 24-Mar-17 LAPSED 1
03:00:00 03:00:00 24-Mar-17 AVAILABLE 1
04:00:00 04:00:00 24-Mar-17 AVAILABLE 1
05:00:00 05:00:00 24-Mar-17 AVAILABLE 1
06:00:00 06:00:00 24-Mar-17 AVAILABLE 1
07:00:00 07:00:00 24-Mar-17 AVAILABLE 1
08:00:00 08:00:00 24-Mar-17 AVAILABLE 1
09:00:00 09:00:00 24-Mar-17 AVAILABLE 1
10:00:00 10:00:00 24-Mar-17 AVAILABLE 1
11:00:00 11:00:00 24-Mar-17 AVAILABLE 1
12:00:00 12:00:00 24-Mar-17 AVAILABLE 1
13:00:00 13:00:00 24-Mar-17 BOOKING 1
14:00:00 14:00:00 24-Mar-17 AVAILABLE 1
15:00:00 15:00:00 24-Mar-17 AVAILABLE 1
16:00:00 16:00:00 24-Mar-17 AVAILABLE 1
17:00:00 17:00:00 24-Mar-17 AVAILABLE 1
18:00:00 18:00:00 24-Mar-17 AVAILABLE 1
19:00:00 19:00:00 24-Mar-17 AVAILABLE 1
20:00:00 20:00:00 24-Mar-17 AVAILABLE 1
21:00:00 21:00:00 24-Mar-17 AVAILABLE 1
22:00:00 22:00:00 24-Mar-17 AVAILABLE 1
23:00:00 23:00:00 24-Mar-17 AVAILABLE 1
00:00:00 00:00:00 24-Mar-17 AVAILABLE 1
数字不会有前导零 你能试一下吗 LPAD(收件人编号(SUBSTR('01:00:00',1,instr('01:00:00',':')-1)),2,0) 参考:
ORA-00932:不一致的数据类型:预期的数字得到了字符我尝试了这个alsotry解析两个值到varchari已经更改了注释,现在它将返回Varcharal我正在将这个值带入while循环。据我所知,我们无法在while循环中比较varchar,这就是我在上述代码中添加到_number的原因。如果您想在while中使用它作为数字,为什么需要将其显示为01?是的,我尝试过,但lpad在这种情况下没有帮助。您已经得到了两个答案,但似乎没有一个适合您的需要。这应该是一个很好的理由来改进你的问题,让它更清楚。尝试构建一个示例表,发布格式良好的示例数据,显示您的查询应该为该数据提供什么。这可能是有用的。这样的编辑将使问题变得更好,并帮助人们帮助您
to_number()
不能用于此。您需要使用to_char()
来格式化一个数字。另外:您应该使用提取(从V_开始时间算起的小时数)
V_START_TIME V_END_TIME OPERATION_Date STATUS_1 OT_ROOM_ID_1
01:00:00 01:00:00 24-Mar-17 AVAILABLE 1
02:00:00 02:00:00 24-Mar-17 LAPSED 1
03:00:00 03:00:00 24-Mar-17 AVAILABLE 1
04:00:00 04:00:00 24-Mar-17 AVAILABLE 1
05:00:00 05:00:00 24-Mar-17 AVAILABLE 1
06:00:00 06:00:00 24-Mar-17 AVAILABLE 1
07:00:00 07:00:00 24-Mar-17 AVAILABLE 1
08:00:00 08:00:00 24-Mar-17 AVAILABLE 1
09:00:00 09:00:00 24-Mar-17 AVAILABLE 1
10:00:00 10:00:00 24-Mar-17 AVAILABLE 1
11:00:00 11:00:00 24-Mar-17 AVAILABLE 1
12:00:00 12:00:00 24-Mar-17 AVAILABLE 1
13:00:00 13:00:00 24-Mar-17 BOOKING 1
14:00:00 14:00:00 24-Mar-17 AVAILABLE 1
15:00:00 15:00:00 24-Mar-17 AVAILABLE 1
16:00:00 16:00:00 24-Mar-17 AVAILABLE 1
17:00:00 17:00:00 24-Mar-17 AVAILABLE 1
18:00:00 18:00:00 24-Mar-17 AVAILABLE 1
19:00:00 19:00:00 24-Mar-17 AVAILABLE 1
20:00:00 20:00:00 24-Mar-17 AVAILABLE 1
21:00:00 21:00:00 24-Mar-17 AVAILABLE 1
22:00:00 22:00:00 24-Mar-17 AVAILABLE 1
23:00:00 23:00:00 24-Mar-17 AVAILABLE 1
00:00:00 00:00:00 24-Mar-17 AVAILABLE 1
SELECT (
CASE
WHEN (SUBSTR('01:00:00',1,instr('01:00:00',':')-1))='00'
THEN '24'
ELSE LPAD(SUBSTR('01:00:00',1,instr('01:00:00',':')-1),2,'0')
END)
FROM dual;