Oracle - 日期格式验证 [重复]

Posted

技术标签:

【中文标题】Oracle - 日期格式验证 [重复]【英文标题】:Oracle - Date format validation [duplicate] 【发布时间】:2020-01-16 10:39:24 【问题描述】:

我有一个Date format 字段,用户可以通过模板手动输入该字段。有一个限制,用户只能以MM/DD/YYYY 格式输入日期。如果日期不是MM/DD/YYYY 格式,我必须抛出错误'Invalid date Format'

如果日期格式不是上述格式,我需要一个匿名块/过程/函数,它返回消息'Invalid date Format'

谁能帮我实现这个目标?

【问题讨论】:

您如何知道 01/02/2020 是 2020 年 1 月 2 日还是 2020 年 2 月 1 日?这将是一个症结所在。除此之外,如果to_date(<your input date string>, 'mm/dd/yyyy') 无法将日期字符串转换为 DATE 数据类型,它将失败。 这能回答你的问题吗? Valid Date Checks in Oracle 这能回答你的问题吗? Return number from Oracle Select statement after parsing date 【参考方案1】:

这是一个匿名 PL/SQL 块,它将您的日期字符串作为绑定变量:

DECLARE
  dt DATE;
BEGIN
  BEGIN
    dt := TO_DATE( :your_date_string, 'MM/DD/YYYY' );
  EXCEPTION
    WHEN OTHERS THEN
      raise_application_error( -20000, 'Invalid date format' );
  END;

  -- do stuff with your date.
  NULL;
END;
/

如果您只想将其作为过程或函数,请添加正确的签名。

【讨论】:

以上是关于Oracle - 日期格式验证 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Oracle 日期格式 [重复]

使用 JQuery Validate [重复] 以 dd/mm/yyyy 格式验证日期

用于验证日期时间格式的正则表达式(MM/DD/YYYY)[重复]

PHP入门教程之日期与时间操作技巧总结(格式化,验证,获取,转换,计算等)

jQuery/JavaScript:是约会吗? (验证是不是是日期)[重复]

日期格式校验