【问题标题】:a.m or p.m. time format when recording record上午或下午。录音时的时间格式
【发布时间】:2021-09-17 14:19:18
【问题描述】:

晚上好,

我需要在表格中记录日期和时间,但格式为(上午或下午),

看到a和m中间有个点

我正在尝试:

insert into fechadia (fecha,id )VALUES (to_date('14/05/2021 10:01:45 a.m.','DD/MM/YYYY hh:mi:ss a.m.'),'4')

ALTER SESSION SET NLS_DATE_FORMAT='DD/MM/YYYY HH:MI:SS a.m.';

我得到了错误: ORA-01855: am / a.m. 或 pm / p.m.必要的

如果我删除了该点,但它会将记录保存为 AM,而不是 a.m.

 insert into fechadia (fecha,id )VALUES (to_date('14/05/2021 10:01:45 am','DD/MM/YYYY hh:mi:ss a.m.'),'4')

结果: 2021 年 5 月 14 日上午 10:01:45

期望值: 2021 年 5 月 14 日上午 10:01:45

这个带有点的值很重要,因为值到达时(a.m.) 我将不胜感激。

***信息: la columna tiene el tipo de datos DATE

谢谢,

【问题讨论】:

    标签: oracle oracle11g oracle10g oracle-sqldeveloper


    【解决方案1】:

    首先,日期不存储为格式化字符串,带有“a.m.”或“上午”。这些过滤器仅在处理数据时应用,以转换为二进制日期数据类型或从二进制日期数据类型转换。此外,由于您在 to_date 函数调用中使用了显式格式过滤器,因此 NLS_DATE_FORMAT 的值无关紧要。

    您收到的错误表明您的格式字符串有问题:传入数据的某些内容没有正确匹配,但我无法重现它。是否有可能某些行具有不同的格式?如果您无法让过滤器以任何其他方式工作,您可以在将文本插入到可以通过删除所有点的内容中修改文本:

    -- remove dots from a.m. or p.m.
    insert into fechadia (fecha,id) VALUES (to_date(replace('14/05/2021 10:01:45 a.m.','.'),'DD/MM/YYYY hh:mi:ss am'),'4');
    

    关键是要插入您的数据。一旦它在表格中,然后在您选择数据时使用适当的过滤器(即“上午”),您应该不会有任何问题:

    -- select a date data type and format with a.m.
    select to_char(sysdate,'DD/MM/YYYY hh:mi:ss a.m.') from dual;
    
    TO_CHAR(SYSDATE,'DD/MM/YYYYHH:MI:SSA.M.') 
    ----------------------------------------- 
    07/07/2021 03:50:24 a.m.                  
    
    -- convert a string with "pm" to a data data type and back to a formatted string with "p.m."
    select to_char(to_date('07/07/2021 10:10:10 pm','DD/MM/YYYY hh:mi:ss am'),'DD/MM/YYYY hh:mi:ss a.m.') from dual;
    
    TO_CHAR(TO_DATE('07/07/202110:10:10PM','DD/MM/YYYYHH:MI:SSAM'),'DD/MM/YYYYHH:MI:SSA.M.') 
    ---------------------------------------------------------------------------------------- 
    07/07/2021 10:10:10 p.m.      
    

    【讨论】:

      猜你喜欢
      • 2015-06-02
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-23
      • 2013-05-28
      • 1970-01-01
      相关资源
      最近更新 更多