【问题标题】:How to make a constraint on DATE FORMAT in ORACLE如何在 ORACLE 中对 DATE FORMAT 进行约束
【发布时间】:2020-01-06 20:10:16
【问题描述】:

说我通常的日期格式是“14-jan-2019”,我希望我的日期只能被接受为“YYYY-MM-DD”,我该怎么做?我可以将 jan 更改为实际数字吗?

【问题讨论】:

标签: oracle date


【解决方案1】:

在我看来,正确/正确的做法是将您的 date 列(或变量或其他任何内容)声明为 DATE,例如

create table test (date_column date);

declare
  l_date_variable date;
begin
  ...

这样做,您可以让数据库处理有效值。

然后您就可以使用任何有效的日期格式掩码以任何方式输入数据,例如

to_date('06.01.2020', 'dd.mm.yyyy')
date '2020-01-06'
to_date('2020-06-01', 'yyyy-dd-mm')

等等。 - 所有这些值都是有效的

【讨论】:

    【解决方案2】:

    DATE 数据类型没有格式 - 它在内部存储为 7-bytes,代表年(2 个字节)和月、日、小时、分钟和秒(每个 1 个字节)。

    '14-JAN-2019' 不是日期 - 它是文本文字。

    如果要存储日期值,请使用 DATE 数据类型。

    如果您只想接受特定格式的字符串作为输入,那么在您用来与数据库对话的任何用户界面中,都只接受该格式。如果您要将字符串转换为 DATEs 并想要一个精确的格式,那么您可以使用:

    TO_DATE( '2019-01-14', 'fxYYYY-MM-DD' )
    

    注意:fx 格式模型意味着准确的格式是预期的,典型的string-to-date conversion rules 将不会被应用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多