Sql Oracle时间日期到日期

Sql Oracle时间日期到日期,sql,eclipse,oracle,to-char,to-date,Sql,Eclipse,Oracle,To Char,To Date,我无法将日期时间字段转换为日期。以下是查询: SELECT TO_DATE(PROJ.RECEIVEDDATE, 'MM/dd/yyyy') FROM PROJ 但是当我运行它时,我得到以下错误,“ORA-01843:不是有效月份” 所以我试着先转换成char,然后再转换成date SELECT TO_DATE(TO_CHAR(PROJ.RECEIVEDDATE, 'MM/dd/yyyy'), 'MM/dd/yyyy') FROM PROJ 但是得到了错误的输出,“2005-01-18 00

我无法将日期时间字段转换为日期。以下是查询:

SELECT TO_DATE(PROJ.RECEIVEDDATE, 'MM/dd/yyyy')
FROM PROJ
但是当我运行它时,我得到以下错误,“ORA-01843:不是有效月份”

所以我试着先转换成char,然后再转换成date

SELECT TO_DATE(TO_CHAR(PROJ.RECEIVEDDATE, 'MM/dd/yyyy'), 'MM/dd/yyyy')
FROM PROJ

但是得到了错误的输出,“2005-01-18 00:00:00.0”

我认为您对
DATE
数据类型有点困惑,因为它有一个时间组件-Oracle中没有单独的
DATETIME
类型。如果你的<代码>接收日期字段已经是<代码>日期<代码>,情况似乎是这样,那么你就不必要地转换它,但是你也在中间做了一个隐式转换到字符串。

TO_DATE(PROJ.RECEIVEDDATE, 'MM/dd/yyyy')
他真的在做什么

TO_DATE(TO_CHAR(PROJ.RECEIVEDDATE, <NLS_DATE_FORMAT>), 'MM/dd/yyyy')
最后一部分有点让人困惑——这不是“错”,而是客户选择如何格式化
DATE
值。如果您想以特定格式查看,只需使用
来显示字符,甚至不需要
TRUNC

SELECT TO_CHAR(PROJ.RECEIVEDDATE, 'mm/dd/yyyy')
FROM PROJ

。。。但这取决于你在做什么——如果你纯粹是为了显示而使用它,这很好,如果它将在更大的查询中的其他地方使用,那么就把它作为
日期
我认为你对
日期
数据类型有点困惑,因为它有一个时间组件——Oracle中没有单独的
日期时间
类型。如果你的<代码>接收日期字段已经是<代码>日期<代码>,情况似乎是这样,那么你就不必要地转换它,但是你也在中间做了一个隐式转换到字符串。

TO_DATE(PROJ.RECEIVEDDATE, 'MM/dd/yyyy')
他真的在做什么

TO_DATE(TO_CHAR(PROJ.RECEIVEDDATE, <NLS_DATE_FORMAT>), 'MM/dd/yyyy')
最后一部分有点让人困惑——这不是“错”,而是客户选择如何格式化
DATE
值。如果您想以特定格式查看,只需使用
来显示字符,甚至不需要
TRUNC

SELECT TO_CHAR(PROJ.RECEIVEDDATE, 'mm/dd/yyyy')
FROM PROJ

。。。但这取决于你在做什么-如果你只是用它来展示,那就好了,如果它将在更大的查询中的其他地方使用,那么将其保留为
日期

如果您只运行to\u char函数,您会看到什么?当我使用to\u char时,格式是正确的,但是它不是日期,因此它只按数字顺序排序。如果这是在Eclipse中,那么您使用的是JDBC。已经有一段时间了,但是
SELECT RECEIVEDDATE FROM PROJ
不会返回java.sql.Date对象吗?如果您只是运行to_char函数,您会看到什么?当我执行to_char时,格式是正确的,但它不是日期,所以它只按数字顺序排序。如果这是在Eclipse中,那么您使用的是JDBC。已经有一段时间了,但是
从PROJ选择RECEIVEDDATE
不会返回java.sql.Date对象吗?RECEIVEDDATE的数据返回为2005-01-18 22:35:31.0,我希望它是MM/dd/yyyy,但从我尝试的所有内容来看,都没有任何结果works@user2953762-您的客户端似乎正在格式化,您可以尝试更改客户端设置,但最好只使用
to_CHAR
指定所需的格式。但您暗示您希望按此日期订购,在这种情况下,您应该将其保留为
日期。至少对于
ORDER BY
子句。RECEIVEDDATE的数据返回为2005-01-18 22:35:31.0,我希望返回为MM/dd/yyyy,但从我尝试的所有内容来看,都没有任何结果works@user2953762-您的客户端似乎正在格式化,您可以尝试更改客户端设置,但最好只使用
to_CHAR
指定所需的格式。但您暗示您希望按此日期订购,在这种情况下,您应该将其保留为
日期。至少对于
订购依据
条款。