如何解决上午或下午录音时的时间格式
晚上好,
我需要在表格中记录日期和时间,但格式为(上午或下午),
看到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.必要
如果我删除点,如果它有效,但它会将记录保存为上午,而不是上午
insert into fechadia (fecha,id )VALUES (to_date('14/05/2021 10:01:45 am','4')
结果: 2021 年 5 月 14 日上午 10:01:45
期望值: 2021 年 5 月 14 日上午 10:01:45
这个带点的值很重要,因为值到达时为 (a.m.) 我将不胜感激。
***基本信息: la columna tiene el tipo de datos 日期
谢谢,
解决方法
首先,日期不存储为格式化字符串,带有“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');
重点是插入数据。一旦它在表格中,然后在选择数据时使用适当的过滤器(即“a.m.”),你应该没有任何问题:
-- 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 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.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。