如何在oracle中以dd/mm/yyyy格式将当前日期插入DATE字段

che*_*rit 2 oracle timestamp date date-format

我的表中有一个字段,数据类型为Oracle中的DATE.我想以DD/MM/YYYY格式将当前日期插入该字段.

我尝试了以下查询:

select to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy') from dual
Run Code Online (Sandbox Code Playgroud)

但它给出了

1/8/2011 12:00:00 AM.
Run Code Online (Sandbox Code Playgroud)

我希望它插入并显示为

08/01/2011 12:00:00 AM.
Run Code Online (Sandbox Code Playgroud)

请问有人帮我吗?

Ben*_*oit 15

DATE 是Oracle中的内置类型,它以固定方式表示,您无法控制它.

所以:

我希望它插入[...]作为08/01/2011 12:00:00 AM

以上是荒谬的.您不插入字符串,插入日期.

格式仅在您需要时才有用:

  • 将字符串转换为日期的内部表示TO_DATE形式(格式掩码:如何解析字符串);
  • 将日期的内部表示形式转换为字符串TO_CHAR(格式掩码:如何呈现日期).

所以基本上,在您的示例中,您将使用DATE,将其转换为具有某种格式的STRING,并使用相同的格式将其转换回DATE.这是一个无操作.

现在,您的客户端显示的内容:这是因为您的Oracle客户端不会直接显示DATE字段,NLS层将转换所选的任何DATE字段.因此,默认情况下,它取决于您的语言环境.

你想要的是SELECT TO_CHAR(SYSDATE,'DD/MM/YYYY') FROM dual;哪些将显式执行转换并返回一个字符串.

当您想在数据库中插入日期时,可以使用TO_DATE或日期文字.