oracle 判断是不是是时间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 判断是不是是时间相关的知识,希望对你有一定的参考价值。

这里有一个简单判断日期的方法。

其实日期看来很简单,但各国表示各不相同.
1/13/2005
2005.10.25
23-05-2005
等都是日期
这还不包括类似20051225等方式

/*
最初由 jackywood 发布
个人写的一个判断是否是正确日期字符串的函数, 请大家点评

    函数参数 str : 需要转换为日期的字符串, fmt : 日期格式, nls : 日期字符串的语言
   返回值: 类型为date, 如果字符串不符合转换格式的要求或是非法的日期字符串, 返回值为null, 反之, 返回转换后的date值
*/
CREATE OR REPLACE FUNCTION isdate(str varchar2, fmt varchar2 default null, nls varchar2 default null)
 RETURN date
 IS
   v_date date;
   v_fmt varchar2(100) default fmt;
   v_nls varchar2(100) default nls;
 BEGIN
   IF fmt IS NULL THEN
     SELECT value
       INTO v_fmt
       FROM v$nls_parameters
      WHERE parameter='NLS_DATE_FORMAT';
   END IF;
   IF nls IS NULL THEN
     SELECT 'NLS_DATE_LANGUAGE='''||value||''''
       INTO v_nls
       FROM v$nls_parameters
      WHERE parameter='NLS_DATE_LANGUAGE';
   END IF;
   v_date := to_date(str, v_fmt, v_nls);
   RETURN v_date;
   
   EXCEPTION
     WHEN OTHERS THEN
       /*如果你希望看到报错, 就把下面的注释行打开*/
       --raise;
       RETURN NULL;
 END;
 /

参考技术A 这里有一个简单判断日期的方法。
其实日期看来很简单,但各国表示各不相同.
1/13/2005
2005.10.25
23-05-2005
等都是日期
这还不包括类似20051225等方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

/*
最初由 jackywood 发布
个人写的一个判断是否是正确日期字符串的函数, 请大家点评

函数参数 str : 需要转换为日期的字符串, fmt : 日期格式, nls : 日期字符串的语言
<a href="https://www.baidu.com/s?wd=%E8%BF%94%E5%9B%9E%E5%80%BC&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">返回值</a>: 类型为date, 如果字符串不符合转换格式的要求或是非法的日期字符串, <a href="https://www.baidu.com/s?wd=%E8%BF%94%E5%9B%9E%E5%80%BC&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">返回值</a>为null, 反之, 返回转换后的date值
*/
CREATE OR REPLACE FUNCTION isdate(str varchar2, fmt varchar2 default null, nls varchar2 default null)
RETURN date
IS
v_date date;
v_fmt varchar2(100) default fmt;
v_nls varchar2(100) default nls;
BEGIN
<a href="https://www.baidu.com/s?wd=IF&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">IF</a> fmt IS NULL THEN
SELECT value
INTO v_fmt
FROM v$nls_parameters
WHERE parameter='NLS_DATE_FORMAT';
<a href="https://www.baidu.com/s?wd=END&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">END</a> <a href="https://www.baidu.com/s?wd=IF&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">IF</a>;
<a href="https://www.baidu.com/s?wd=IF&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">IF</a> nls IS NULL THEN
SELECT 'NLS_DATE_LANGUAGE='''||value||''''
INTO v_nls
FROM v$nls_parameters
WHERE parameter='NLS_DATE_LANGUAGE';
<a href="https://www.baidu.com/s?wd=END&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">END</a> IF;
v_date := to_date(str, v_fmt, v_nls);
RETURN v_date;

<a href="https://www.baidu.com/s?wd=EXCEPTION&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">EXCEPTION</a>
WHEN OTHERS THEN
/*如果你希望看到报错, 就把下面的注释行打开*/
--raise;
RETURN NULL;
<a href="https://www.baidu.com/s?wd=END&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1d9PAF-uWmvuW--ujfvnWwb0ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1D4PH64rH6knWRkn1m4rj61Pj0" target="_blank" class="baidu-highlight">END</a>;
/

以上是关于oracle 判断是不是是时间的主要内容,如果未能解决你的问题,请参考以下文章

在oracle中怎么判断一个日期是不是在一定时间范围内

如何判断我在 Oracle 事务中是不是有未提交的工作?

oracle判断表是不是存在字段

关于oracle的事务中,如何判断一条语句是不是成功执行

oracle 中如何判断字符串中是不是有某一个字符

oracle 游标操作 怎么判断SQL语句是不是查出数据