gpt4 book ai didi

sql - 在oracle中将VARCHAR转换为时间

转载 作者:行者123 更新时间:2023-12-02 08:40:27 25 4
gpt4 key购买 nike

我正在使用 ORACLE,我想使用以下 SQL 查询将 VARCHAR 类型转换为时间

SELECT CUSTOMER_SERVICE_QUOTE_MEAS.ITEM_CREATE_TM,
TO_char(
CUSTOMER_SERVICE_QUOTE_MEAS.ITEM_CREATE_TM,
'hh24:mi:ss')
AS TIME_CHANGE
FROM FDC.CUSTOMER_SERVICE_QUOTE_MEAS CUSTOMER_SERVICE_QUOTE_MEAS

这导致 6/1/2013 11:32:02 AM 但我不想在此处显示日期部分。
我只需要时间部分 11:32 :02,如何实现?

CUSTOMER_SERVICE_QUOTE_MEAS.ITEM_CREATE_TM 字段包含如下所示的数据 113202。任何帮助将不胜感激,谢谢。

最佳答案

item_create_tm 列的数据类型是 NUMBER 吗? to_char 需要一个日期列。要重现错误:

SELECT to_char(113202, 'hh24:mi:ss') FROM dual;

它会产生这个错误。

ORA-01481: invalid number format model
01481. 00000 - "invalid number format model"
*Cause: The user is attempting to either convert a number to a string
via TO_CHAR or a string to a number via TO_NUMBER and has
supplied an invalid number format model parameter.
*Action: Consult your manual.

您可以先将其转换为日期,然后再转换为格式化的字符。

SELECT to_char(to_date(113202, 'hh24miss'), 'hh24:mi:ss') FROM dual;

输出

11:32:02

或者用 : 分隔符将数字子字符串化为 char。

SELECT substr(113202, 1, 2) || ':' || substr(113202, 3, 2) || ':' || substr(113202, 5, 2) FROM dual;

输出

11:32:02

关于sql - 在oracle中将VARCHAR转换为时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16941210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com