日期yyyy-mm-dd格式中怎么查出无效数字
时间: 2023-09-07 18:14:35 浏览: 50
您可以使用以下查询来查找日期字符串中的无效数字:
```
SELECT *
FROM your_table
WHERE NOT REGEXP_LIKE(your_column, '^[0-9]{4}-[0-9]{2}-[0-9]{2}$')
OR TO_DATE(your_column, 'YYYY-MM-DD') IS NULL;
```
这个查询将返回日期格式不正确或无法转换为日期的行。其中,`REGEXP_LIKE`函数用于检查日期字符串是否符合`yyyy-mm-dd`格式,`TO_DATE`函数用于将日期字符串转换为日期类型,如果无法转换则返回`NULL`。您可以根据需要修改查询,以适应您的具体情况。
相关问题
oracle转换日期 (to_date(to_char('2021-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss') 为什么会报无效数字错误
在你提供的语句中,`to_char('2021-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')` 的作用是将日期类型的数据转换为字符串类型的数据,日期类型的数据格式是'yyyy-mm-dd hh24:mi:ss',转换后的字符串格式也是'yyyy-mm-dd hh24:mi:ss'。
然后,你使用 `to_date` 函数将转换后的字符串类型的数据再次转换为日期类型的数据,语句为:
```
to_date(to_char('2021-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss'),'yyyy-mm-dd hh24:mi:ss')
```
这个语句会报错,原因是 `to_char` 函数返回的是字符串类型的数据,而 `to_date` 函数需要的是日期类型的数据。所以,在将字符串类型的日期转换为日期类型的过程中,需要指定正确的日期格式。因此,你可以将语句修改为:
```
to_date('2021-01-01 00:00:00','yyyy-mm-dd hh24:mi:ss')
```
这个语句可以将字符串类型的日期转换为日期类型的数据。
用等价类划分方法和边界值方法设计测试用例并提交。 用户注册 登 录 名:______(由数字或字母组成,以字母开头,长度4-16位) 年 龄:______(0~150之间的正整数) 学 历:______(专科、本科、硕士、博士) 出生 日期:______(格式:YYYY-MM-DD,如:1900-01-01)
等价类划分法:
1. 名字:
- 有效等价类:以字母开头,只包含数字和字母的长度为4-16的字符串。
- 无效等价类:长度小于4或大于16的字符串,不以字母开头的字符串。
- 测试用例:
- 有效:Tom1234, Alice, 1234abcd5678efgh
- 无效:t1234, abcdefghijklmnopq, 1234abcd5678efghijklmno
2. 年龄:
- 有效等价类:0~150之间的正整数。
- 无效等价类:小于0或大于150的整数,小数,字符串等。
- 测试用例:
- 有效:18, 30, 150
- 无效:-1, 151, 20.5, abc
3. 学历:
- 有效等价类:专科、本科、硕士、博士。
- 无效等价类:其他任何字符串。
- 测试用例:
- 有效:专科, 硕士, 博士, 本科
- 无效:研究生, 大专, bachelor, master
4. 出生日期:
- 有效等价类:格式为YYYY-MM-DD的日期字符串。
- 无效等价类:不符合日期格式或者不合法的日期,如2019-02-31。
- 测试用例:
- 有效:1990-01-01, 2000-12-31, 2010-02-28
- 无效:1990/01/01, 2000-13-01, 2019-02-31
边界值法:
1. 名字:
- 最小值:长度为4的字符串 Tom1,长度为16的字符串 Tom123456789012345。
- 最大值:长度为4的字符串 abcd,长度为16的字符串 abcdefghijklmnop。
- 测试用例:
- 最小值:Tom1, abcd
- 最大值:Tom123456789012345, abcdefghijklmnop
2. 年龄:
- 最小值:0,1,2。
- 最大值:149,150。
- 测试用例:
- 最小值:0, 1, 2
- 最大值:149, 150
3. 学历:
- 最小值:专科。
- 最大值:博士。
- 测试用例:
- 最小值:专科
- 最大值:博士
4. 出生日期:
- 最小值:1900-01-01。
- 最大值:2150-12-31。
- 测试用例:
- 最小值:1900-01-01
- 最大值:2150-12-31
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)