Sql 插入时将YYYY-MM-DD HH24:MI:SS.F转换为oracle日期格式
我们在数据库表中将日期存储为Sql 插入时将YYYY-MM-DD HH24:MI:SS.F转换为oracle日期格式,sql,oracle,oracle11g,Sql,Oracle,Oracle11g,我们在数据库表中将日期存储为VARCHAR2 REGDATE-VARCHAR2,格式YYYY-MM-DD hh24:mi:ss.f 样本数据: 2018-01-31 23:47:35.0 2018-01-01 00:00:48.0 2018-01-01 06:54:36.0 我正试图以正确的DATE格式将此数据插入新表TABLEB。我尝试了以下几种解决方案,通常得到ORA-01821:无法识别的日期格式 SELECT TO_DATE(REGDATE, 'YYYY-MM-DD HH
VARCHAR2
- REGDATE-
,格式VARCHAR2
YYYY-MM-DD hh24:mi:ss.f
2018-01-31 23:47:35.0
2018-01-01 00:00:48.0
2018-01-01 06:54:36.0
我正试图以正确的DATE
格式将此数据插入新表TABLEB
。我尝试了以下几种解决方案,通常得到ORA-01821:无法识别的日期格式
SELECT
TO_DATE(REGDATE, 'YYYY-MM-DD HH24:MI:SS.F')
FROM
TABLEA
WHERE
REGDATE LIKE '2018-03-16%'
有人能帮我吗?要使用小数秒,您需要将时间戳转换为
,因此:
SELECT TO_TIMESTAMP(REGDATE,'YYYY-MM-DD HH24:MI:SS.FF')
FROM TABLEA
WHERE REGDATE LIKE '2018-03-16%';
如果需要将此作为日期,请在以后转换:
SELECT CAST(TO_TIMESTAMP(REGDATE,'YYYY-MM-DD HH24:MI:SS.FF') as DATE)
FROM TABLEA
WHERE REGDATE LIKE '2018-03-16%';
要使用小数秒,您需要转换为时间戳,因此:
SELECT TO_TIMESTAMP(REGDATE,'YYYY-MM-DD HH24:MI:SS.FF')
FROM TABLEA
WHERE REGDATE LIKE '2018-03-16%';
如果需要将此作为日期,请在以后转换:
SELECT CAST(TO_TIMESTAMP(REGDATE,'YYYY-MM-DD HH24:MI:SS.FF') as DATE)
FROM TABLEA
WHERE REGDATE LIKE '2018-03-16%';
更新
没错,Oracle不支持日期格式的小数秒。这也是写在链接网站上的原始答案。。。哎呀
以下日期时间格式元素可用于时间戳和间隔格式模型,但不能用于原始日期格式模型:FF、TZD、TZH、TZM和TZR
不过,这应该是可行的:
SELECT CAST(TO_TIMESTAMP(REGDATE,'YYYY-MM-DD HH24:MI:SS.FF1') AS DATE) FROM TABLEA WHERE REGDATE LIKE '2018-03-16%'
原始答案
尝试使用
SELECT TO_DATE(REGDATE,'YYYY-MM-DD HH24:MI:SS.FF1') FROM TABLEA WHERE REGDATE LIKE '2018-03-16%'
如表2-15网站上的Datetime Format Elements(日期时间格式元素)中对元素FF的解释所示
没错,Oracle不支持日期格式的小数秒。这也是写在链接网站上的原始答案。。。哎呀
以下日期时间格式元素可用于时间戳和间隔格式模型,但不能用于原始日期格式模型:FF、TZD、TZH、TZM和TZR
不过,这应该是可行的:
SELECT CAST(TO_TIMESTAMP(REGDATE,'YYYY-MM-DD HH24:MI:SS.FF1') AS DATE) FROM TABLEA WHERE REGDATE LIKE '2018-03-16%'
原始答案
尝试使用
SELECT TO_DATE(REGDATE,'YYYY-MM-DD HH24:MI:SS.FF1') FROM TABLEA WHERE REGDATE LIKE '2018-03-16%'
正如在网站上的表2-15 Datetime Format Elements(日期时间格式元素)中对元素FF的解释所示,我在您提到的查询中再次遇到此错误“ORA-01821:日期格式未识别”。非常感谢Max。更新后的查询非常有效。还感谢您的详细解释:)我在您提到的查询中再次遇到错误“ORA-01821:日期格式未识别”。非常感谢Max。更新后的查询工作得非常好。同时也感谢您的详细解释:)您好,戈登,我收到两个解决方案的“ORA-01821:日期格式未识别”。@SaiAvinash-唯一的F
无效,并导致该错误;这应该是FF
,可以选择使用最大小数位数(但实际上不需要这样转换)。@SaiAvinash。你知道什么是可悲的吗?事实上,我测试了答案,输入了两个“FF”,然后复制回了错误的版本。你好,戈登,我在两个解决方案中都得到了“ORA-01821:日期格式未识别”。@SaiAvinash-唯一的F
无效,导致了错误;这应该是FF
,可以选择使用最大小数位数(但实际上不需要这样转换)。@SaiAvinash。你知道什么是可悲的吗?事实上,我测试了答案,输入了双“FF”,然后复制了错误的版本。