判断是否为日期类型

有些人设计表时喜欢用文本来保存日期,因为缺少足够的验正,常常会有些错误的数据进去。这时只有写自定义函数来判断表中数据是否正确

CREATE OR REPLACE FUNCTION fun_isdate(p_str VARCHAR2, p_frm VARCHAR2)
  RETURN NUMBER DETERMINISTIC IS
  v_date DATE;
BEGIN
  v_date := to_date(p_str, p_frm);
  RETURN 1;
EXCEPTION
  WHEN OTHERS THEN
    RETURN 0;
END;
/
SELECT fun_isdate('2014-00-01', 'yyyy-mm-dd') AS d1,
       fun_isdate('2014-01-01', 'yyyy-mm-dd') AS d2
  FROM dual;


        D1         D2
---------- ----------
         0          1
1 row selected

SQL> 


### 回答1: 你可以使用 Python 的 datetime 模块来判断一个变量是否为日期类。 首先,你需要导入 datetime 模块: ``` import datetime ``` 然后,你可以使用 datetime 模块中的 `datetime` 类来创建一个日期对象。 例如: ``` date = datetime.datetime(2020, 1, 1) ``` 这样你就可以使用 `isinstance()` 函数来判断一个变量是否为日期类了: ``` if isinstance(date, datetime.datetime): print("date is a datetime object") ``` 如果你想判断一个字符串是否是合法的日期格式,你可以使用 `datetime.strptime()` 函数来将字符串解析为日期对象,如果解析成功,则该字符串为合法的日期格式,否则,会抛出一个 `ValueError` 异常。 例如: ``` date_str = "2020-01-01" try: date = datetime.datetime.strptime(date_str, "%Y-%m-%d") print("date is a valid datetime format") except ValueError: print("date is not a valid datetime format") ``` ### 回答2: 在Python中,可以使用datetime模块来判断是否日期类。 首先,需要导入datetime模块: ``` import datetime ``` 然后,可以通过以下方法来判断是否日期类: 1. 使用try-except语句,尝试将字符串转换为日期类。如果转换成功,则说明是日期类;如果转换失败,则说明不是日期类。 ```python def is_date(date_str): try: datetime.datetime.strptime(date_str, "%Y-%m-%d") return True except ValueError: return False ``` 在这个方法中,我们使用`strptime`函数将日期字符串转换为日期类。如果转换成功,则说明是日期类,返回True;如果转换失败,则说明不是日期类,返回False。 2. 使用正则表达式判断字符串是否符合日期格式。 ```python import re def is_date(date_str): pattern = r'^\d{4}-\d{2}-\d{2}$' if re.match(pattern, date_str): return True else: return False ``` 在这个方法中,我们使用正则表达式来匹配日期字符串是否符合`YYYY-MM-DD`的格式。如果匹配成功,则说明是日期类,返回True;如果匹配失败,则说明不是日期类,返回False。 ### 回答3: 在Python中,可以使用datetime模块来判断一个变量是否为日期类。 首先,需要导入datetime模块: import datetime 然后,可以使用try-except语句来判断变量是否为日期类。具体步骤如下: 1. 使用try-except语句包裹以下代码,以捕获ValueError异常(如果变量不是日期类): try: # 将变量转化为日期类 datetime.datetime.strptime(变量, 格式) # 如果执行到这里,说明变量是日期类 print("是日期类") except ValueError: # 如果执行到这里,说明变量不是日期类 print("不是日期类") 2. 在上述代码中,需要将要判断的变量替换为"变量",将要判断的日期格式替换为"格式"。例如: try: # 将变量转化为日期类 datetime.datetime.strptime("2021-02-01", "%Y-%m-%d") # 如果执行到这里,说明变量是日期类 print("是日期类") except ValueError: # 如果执行到这里,说明变量不是日期类 print("不是日期类") 以上就是使用datetime模块判断变量是否为日期类的方法。如果try语句中的代码能够执行成功,说明变量是日期类;否则,说明变量不是日期类,将会执行except语句中的代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值