我已经拖了这个网站,认为这很明显,但是可惜我还没有找到一个。基本上设置如下:

我的表格中有一个字符串:

06/22/2010 00:00:00

我对此进行选择:

SELECT To_Date(item, 'MM/DD/YYYY HH24:MI:SS') from that_table

所以我有效地做到了

SELECT To_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS') from that_table

我的数据库返回:

22.06.2010 00:00:00

现在我知道我可以做

to_char(to_Date('06/22/2010 00:00:00', 'MM/DD/YYYY HH24:MI:SS'), 'MM/DD/YYYY HH24:MI:SS')

但是我需要选择来返回日期格式(MM/DD/YYYY HH24:MI:SS),不是字符串。我怎样才能做到这一点?

编辑:真实输出:

22.06.2010 00:00:00

所需的输出(以日期格式):

06/22/2010 00:00:00

有帮助吗?

解决方案

日期是一个时间点,它没有格式(例如数字:它们没有格式)。显示日期时,显然必须获得格式:如果您不具体给Oracle作为格式,则会使用会话的默认格式(会话参数nls_date_format)。

结果:使用日期数据类型进行日期算术和存储(无格式)。使用 to_char 当您需要显示日期时(在报告或GUI中)时功能或等效的内容。

其他提示

日期没有格式,仅在用于显示目的的字符串转换为字符串时才格式化。如果您使用SQL Plus,则在显示日期列(不使用TO_CHAR明确格式化它)时,SQL Plus本身可以使用NLS_DATE_FORMAT设置执行to_char转换:

SQL> select sysdate from dual;

SYSDATE
---------
23-JUN-10

SQL> alter session set nls_date_format = 'YYYY-MM-DD HH24:MI:SS';

Session altered.

SQL> select sysdate from dual;

SYSDATE
-------------------
2010-06-23 15:17:12

如果您不使用SQL Plus,那么您使用的任何工具都会做类似的操作,并且可能有不同的方式来指定显示日期格式以进行显示。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top