Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
Sql 在Oracle数据库中,TO_CHAR(Date)给出结果“00-000-00”_Sql_Oracle_Date - Fatal编程技术网

Sql 在Oracle数据库中,TO_CHAR(Date)给出结果“00-000-00”

Sql 在Oracle数据库中,TO_CHAR(Date)给出结果“00-000-00”,sql,oracle,date,Sql,Oracle,Date,我有一个日期列,我需要将其转换为字符。但这样做会检索“00-000-00”,即使实际数据具有日期值。另外,当我再次将其转换为日期时,它会给出第二天的值 例如: Value: 25-MAR-17 (Date Datatype) TO_CHAR(Value, 'DD-MON-YY'): '00-000-00' TO_DATE(Value, 'DD-MON-YY'): '26-MAR-17' 并不是所有的价值观都是如此,只有最近的价值观才是如此 以下是该日期列中的转储值: select OrderN

我有一个日期列,我需要将其转换为字符。但这样做会检索“00-000-00”,即使实际数据具有日期值。另外,当我再次将其转换为日期时,它会给出第二天的值

例如:

Value: 25-MAR-17 (Date Datatype)
TO_CHAR(Value, 'DD-MON-YY'): '00-000-00'
TO_DATE(Value, 'DD-MON-YY'): '26-MAR-17'
并不是所有的价值观都是如此,只有最近的价值观才是如此

以下是该日期列中的转储值:

select OrderNumber, LoanDate, Dump(LoanDate) from OrderDetail
where OrderNumber=283402 
订单号| LoanDate | DumpLoanDate 283402 | 2017年3月26日|典型值=12 Len=7:120117,3,27,0,15,40 你能给我解释一下为什么会发生这些奇怪的事情以及如何处理吗

作为答案而不是评论,因为它太大了,无法评论

您所说的0是不可能的。如果将NLS_DATE_格式设置为仅显示时间,则可能会得到零。此外,由于时区转换,您可能会得到下一个日期

要进行故障排除,请按照以下步骤编辑问题,并在问题中给出输出

从nls_会话_参数中选择*

运行select sysdate(选择系统日期);并显示输出

运行此alter会话集nls_date_format='DD-MON-YYYY HH24:MI:SS'; 运行select sysdate from dual并显示输出。
现在再次选择您的日期,从rownumIt的位置选择我们很难理解您的问题,因为您提供的数据不可能出现这种情况。请提供一个可复制的测试用例。也就是说,一个包含示例数据和正在运行的查询的虚拟表显示了这种行为。把细节减少到要点。您可能会发现,此练习为您提供了洞察力,并允许您在无需我们帮助的情况下解决问题。日期到日期转换只是为了检查其行为。请提供一个示例,其中包含复制问题所需的DDL和DML语句。还请尝试从您的\u表中选择转储您的\u date\u列,并公布其值。您已编辑了问题,但未添加任何新的实质性信息。如果你想要一个正确的答案,你必须发布一些数据,让我们能够重现和调查你的问题。你从DUMPvalue中得到了什么?nls\u date\u格式在调用\u char时不相关