oracle PL/SQL中的日期格式



如何在oracle中检查表中特定列的日期格式?oracleDATE数据类型是否能够同时存储两种格式(美国和欧洲(?如果是的话,有没有办法区分哪个是月,哪个是日期?

在Oracle中,DATE是一种二进制数据类型,由7个字节组成,表示每个

  1. 世纪
  2. 世纪之年
  3. 月份
  4. 小时
  5. 分钟;以及
  6. 第二

ALWAYS具有这些组件,并且它被NEVER以任何特定格式存储。


如何在oracle中检查表中特定列的日期格式?

它没有任何格式,因此您不能。

如果您想查看DATE的二进制值,可以使用DUMP函数:

SELECT DUMP(date_column) FROM table_name;

oracleDATE数据类型是否能够同时存储两种格式(美国和欧洲(?

不,它从不存储任何格式。

如果要存储格式化的数据,请使用字符串数据类型;然而,对于日期来说,这通常被认为是一种糟糕的做法,因为如果同时使用DD/MM/YYYYMM/DD/YYYY,则会在天和月之间产生歧义。最佳做法是将日期存储为DATE,然后在DISPLAY日期时选择适当的格式。


如果要DISPLAYDATE日期类型,则可以使用TO_CHAR功能并指定适合您要将其显示为.的区域的格式模型

SELECT TO_CHAR(date_column, 'DD/MM/YYYY HH24:MI:SS') AS eu_format,
TO_CHAR(date_column, 'MM/DD/YYYY HH24:MI:SS') AS us_format,
TO_CHAR(date_column, 'YYYY-MM-DD"T"HH24:MI:SS') AS iso8601_format
FROM   table_name

db<gt;小提琴这里

此答案中列出了不同区域的默认格式模型(SQL引擎在隐式将字符串转换为日期时使用,反之亦然,或者某些客户端应用程序在DISPLAY日期时使用(。

Oracle日期以内部二进制数据格式存储。显示格式由客户端处理,不存储。

这与数字相同,例如,根据to_char函数使用的格式掩码,相同的值可以显示为1000、1000.00、1e3等。

相关内容

  • 没有找到相关文章

最新更新