我想检查一个正确的日期.(我们不要谈论这个事实,请将日期存储在varchar中......)
日期存储类似于DDMMYYYY,因此例如24031950是正确的日期.240319不是.
所以我这样做,当通话工作时,这是一个正确的日期:
select to_date('24031950','DDMMYYYY') from dual;
Run Code Online (Sandbox Code Playgroud)
但不幸的是,这也没有返回错误:
select to_date('240319','DDMMYYYY') from dual (why?);
Run Code Online (Sandbox Code Playgroud)
但有趣的是,这个不起作用:
select to_date('190324','YYYYMMDD') from dual;
Run Code Online (Sandbox Code Playgroud)
那么,如何使用给定的格式掩码强制执行4位数的检查?
谢谢!
引用文档:
Oracle数据库可以灵活地将字符串转换为日期.[...]
我相信你所看到的灵活性.您可以使用fx修改器将其关闭:
FX:需要字符数据和格式模型之间的精确匹配
select to_date('240319','fxDDMMYYYY') from dual;
Run Code Online (Sandbox Code Playgroud)
出现ORA-01862错误.
| 归档时间: |
|
| 查看次数: |
204 次 |
| 最近记录: |