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

标签 oracle date timestamp date-format

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

我尝试了以下查询:

select to_date(to_char(sysdate,'dd/mm/yyyy'),'dd/mm/yyyy') from dual

但是它给出了

1/8/2011 12:00:00 AM.

我希望它插入并显示为

08/01/2011 12:00:00 AM.

有人可以帮我吗?

最佳答案

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

所以:

I want it to insert [...] as 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 或日期文字。

关于oracle - 如何在oracle中以dd/mm/yyyy格式将当前日期插入到DATE字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4633271/

相关文章:

c# - 第一次学习Oracle

sql - 如何对下面的更新sql进行SQL调优

ruby-on-rails - ruby/rails 中的日期范围查询

java - java.sql.Timestamp 是否提供有用的纳秒精度?

android - 从日期选择器 onDateSet 获取长时间戳

oracle - 在装载表时从Oracle表中卸载Sqoop

Oracle默认的日期格式是YYYY-MM-DD,为什么?

c# - 文本框asp.net中用户输入的自动日期格式

python - 将日期时间条目插入具有 TIMESTAMP 数据类型的表中

mysql - 在mysql中按未知列类型排序