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 判断是不是是时间的主要内容,如果未能解决你的问题,请参考以下文章