Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在YYYY/MM/DD HH24:MI:SS'中转换日期:2020年9月26日00:15:00;oraclesql中的格式_Sql_Oracle_Date - Fatal编程技术网

如何在YYYY/MM/DD HH24:MI:SS'中转换日期:2020年9月26日00:15:00;oraclesql中的格式

如何在YYYY/MM/DD HH24:MI:SS'中转换日期:2020年9月26日00:15:00;oraclesql中的格式,sql,oracle,date,Sql,Oracle,Date,转换时出错 select to_date('Sep 26 00:15:00','DD/MM/YYYY HH24:MI:SS') from dual ; ORA-01841: (full) year must be between -4713 and +9999, and not be 0 . 如何寻找解决方案?当然,通过提供正确的格式掩码 SQL> select 2 to_char( 3 to_date('Sep 26 00:15:00 2020',

转换时出错

select to_date('Sep 26 00:15:00','DD/MM/YYYY HH24:MI:SS') from dual ;

ORA-01841: (full) year must be between -4713 and +9999, and not be 0 .

如何寻找解决方案?当然,通过提供正确的格式掩码

SQL> select
  2    to_char(
  3            to_date('Sep 26 00:15:00 2020', 'Mon dd hh24:mi:ss yyyy'),
  4            'yyyy/mm/dd hh24:mi:ss'
  5           ) result
  6  from dual;

RESULT
-------------------
2020/09/26 00:15:00

SQL>

使用
TO_DATE()
,您需要将字符串--
9月26日00:15:00'
转换为Oracle
日期--
类型,该类型在内部计算自纪元日期起的秒数

在Unix中,这将是“1970-01-01 00:00:00”,在其他一些数据库中,我知道“2000-01-01 00:00:00”。我对甲骨文一无所知

因此,您可以转换字符串:
'Sep 26 00:15:00'
。也就是说:三个字母的英文月名缩写,一个空格,一天为两位数,一个空格,两位数表示24小时,一个冒号,两位数表示分钟,另一个冒号,两位数表示秒。准确地说,这一年什么都没有。
TO_DATE()
的第二个参数必须描述该格式。因此,它将是:
“Mon DD HH24:MI:SS”

在这种情况下,您使用的第二个参数毫无意义。如果您想播放,可以使用它将转换后的
日期
类型重新格式化为ISO格式的字符串,使用
to_CHAR()


“这是一种在内部计算从一个纪元日期开始的秒数的类型。”这是不正确的;日期数据类型是7个字节,代表世纪、世纪之年、月、日、小时、分钟和秒。因此Oracle不仅在数字上是独一无二的,而且在日期时间类型上也是独一无二的。感谢分享我得到的日期为2020年9月26日星期六00:29:00,我如何将其转换为所需格式:3个字母的英文。工作日名称,空格,3个字母的英文。月份名称,空格,日期,冒号,分钟,冒号,秒秒,年,所以:
'Dy-Mon-DD-HH24:MI:SS-YYYY'
。我在这里找到了一个很好的文档:我的日期是2020年9月26日星期六00:29:00,如何将其转换为所需格式
SELECT 
  TO_CHAR(
    TO_DATE('Sep 26 00:15:00','Mon DD HH24:MI:SS')
  , 'YYYY-MM-DD HH24:MI:SS'
  )
FROM dual;