Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 ORA-01858错误消息_Sql_Oracle_Date_Format - Fatal编程技术网

Sql ORA-01858错误消息

Sql ORA-01858错误消息,sql,oracle,date,format,Sql,Oracle,Date,Format,我有一个关于日期格式错误的问题。所以我有这个疑问 SELECT TO_DATE (PS.PROJECT_START_DT, 'MM/DD/YYYY') 给了我ORA-01858:在需要数字的地方发现了一个非数字字符 我的桌子结构是这样的 PROJECT_START_DT PROJECT_END_DT JOB_NAME 2/5/2015 4/2/2015 W-IGG 2/18/2015 3/19/2015 W14056 2/5/2015

我有一个关于日期格式错误的问题。所以我有这个疑问

SELECT TO_DATE (PS.PROJECT_START_DT, 'MM/DD/YYYY')
给了我ORA-01858:在需要数字的地方发现了一个非数字字符

我的桌子结构是这样的

PROJECT_START_DT PROJECT_END_DT JOB_NAME
2/5/2015         4/2/2015       W-IGG
2/18/2015        3/19/2015      W14056
2/5/2015         3/31/2015      W14013
请帮我解决日期格式的问题

选择日期PS.PROJECT开始日期“MM/DD/YYYY”

在日期列上使用日期是没有意义的。您需要使用适当的格式模型以所需的格式显示字符

日期数据类型包含日期和时间元素

SQL> SELECT to_char(SYSDATE, 'mm/dd/yyyy hh24:mi:ss') dt_tm FROM dual;

DT_TM
-------------------
02/06/2015 11:28:32

SQL>
如果要在任何日期操作中使用日期值,则根本不需要将其转换为任何内容,只需直接在日期操作中使用日期值即可

更新OP关于此处查询的请求

在该查询中,您不必在子查询中使用to_CHAR。仅在主选择中使用TO_CHAR,因为这将显示值。子查询中的start_date和end_dt是外部查询的输入,应该保留为日期值,不需要将其转换为字符串


项目开始是一个日期吗?还是一辆瓦查尔?如果这是一个日期,顾名思义,你为什么要打电话去约会?您只是想截断时间部分吗?是的,它是一个日期…我的目的只是通过select语句显示日期,我将进一步使用它来处理一些数据您想选择一个日期吗?还是要选择特定格式的varchar2?如果你想选择一个日期,只需选择一个日期。如果项目开始,申请日期是完全无用的。至于to_date需要一个VARCHAR参数Oracle将首先使用NLS设置定义的默认格式将您的日期转换为VARCHAR,然后to_date将该VARCHAR转换回最初的日期。lalit如果我使用to_CHAR,则该查询中的此查询片段中会出现问题,无需在子查询中使用to_CHAR,只需在主选择中选择start_date、end_dt和use to_CHAR。让我更新我的答案。
SQL> SELECT to_char(SYSDATE, 'mm/dd/yyyy hh24:mi:ss') dt_tm FROM dual;

DT_TM
-------------------
02/06/2015 11:28:32

SQL>
SELECT LEVEL WEEK_NUM_INCR,
  TO_CHAR (start_date + (LEVEL - 1) * 7, 'WW') WEEK_POSITION
  /* WEEK POSITION FOR THE WHOLE YEAR */
  ,
  TO_CHAR (start_date + (LEVEL - 1) * 7, 'MM/DD/YYYY') START_WEEK_DATE,
  TO_CHAR (start_date + (LEVEL) * 7, 'MM/DD/YYYY') END_WEEK_DATE
FROM
  (SELECT PS.PROJECT_START_DT start_date,
    PS.PROJECT_END_DT end_date
  FROM PROJECT_SPAN PS
  WHERE PS.JOB_NAME = 'W-IGG'
  )
  CONNECT BY start_date + (LEVEL - 1) * 7 < end_date;