0

我正在以“dd/mm/yyyy”格式触发插入查询,但它将日期存储为 MM/DD/YYYY 格式。我只想知道为什么会这样?

这是我正在使用的插入查询。

insert into txnblackout(endtime,idtxn,blackoutflag,starttime,startdate,typeuser,id_entity,idsequence,idapp,enddate) values('83520','LGN','D','7920',TO_DATE('30/12/2012','dd/mm/yyyy'),'ECU','B001','4','A1',TO_DATE('30/12/2012','dd/mm/yyyy'))

在此处输入图像描述

4

3 回答 3

2

这是一个前端问题:它以该格式显示日期。因为它们是日期字段,所以日期确实代表了您插入的日期。

我在屏幕截图的右下角注意到日期以 MM/DD/YYYY 的顺序显示。在 Windows 中更改此设置,它很可能会在您的前端工具中正确显示。

于 2012-10-15T12:17:43.917 回答
2

如果您不想更改 Windows 日期格式(如 Colin 't Hart 建议的那样),您可以

  • 在查询中使用明确的 to_char() 日期格式(如 Robert Hanson 所建议)
  • 设置您的客户端 NLS 设置
  • 配置您的客户端(因为您似乎正在使用 PL/SQL 开发人员):工具 -> 首选项 -> NLS 选项 -> 日期 -> 检查用户定义 + 输入您的格式

就个人而言,我会设置客户端 NLS 设置。

于 2012-10-15T12:31:08.967 回答
1

重要的一点可以通过您的插入来闪烁,其中包括“TO_DATE('30/12/2012','dd/mm/yyyy')”。这会将字符串“30/12/2012”转换为特定于数据库的内部日期对象格式。您无法控制底层存储格式。但是,您可以控制的是在调用 select 时如何使用日期格式化函数将内部日期对象转换回字符串。

select to_char(some_date, 'dd/mm/yyyy') my_date from some_table;

在您引用的可视界面中,它只是显示默认日期到字符串的转换。

于 2012-10-15T12:23:23.887 回答