写一个关于复杂日期时间处理的工具

-- 写一个关于日期时间处理的工具,content_text是要处理的原始数据,从中抽取出日期+时间,content_text有中文,英文,及文书内容等,中文日期+英文时间等多种错乱数据
-- 使用说明,将content_text换成自己想转的文字,转换看看,case when时间,简单明了

 

SELECT min(file_id) as file_id ,content_text,
CASE 
WHEN LOCATE('年',content_text)>0 THEN  -- 这些是中文的
    CASE 
            WHEN LOCATE('秒',content_text)>0 THEN 
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING(trim(content_text),1,LOCATE('秒',trim(content_text))),'年','-'),'月','-'),'日',' '),'时',':'),'分',':'),'秒','')
      WHEN LOCATE('分',content_text)>0 THEN
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(SUBSTRING(trim(content_text),1,LOCATE('分',trim(content_text))),'年','-'),'月','-'),'日',' '),'时',':'),'分','') 
            WHEN LOCATE(':',content_text)>0 THEN   -- 中文日期掺杂英文日期
REPLACE(REPLACE(REPLACE(SUBSTRING(trim(content_text),1,LOCATE(':',trim(content_text))+2),'年','-'),'月','-'),'日',' ')
            ELSE REPLACE(REPLACE(REPLACE(SUBSTRING(trim(content_text),1,LOCATE('日',trim(content_text))),'年','-'),'月','-'),'日',' ') 
            END
ELSE -- 这些是英文格式的
 CASE 
        WHEN LOCATE(':',content_text)>0 THEN substring(trim(content_text),1,LOCATE(':',trim(content_text))+2)
 ELSE SUBSTRING(trim(content_text),1,10) END
END   
as file_time
from 10001_rough_base A 
WHERE  control_name='记录时间'
GROUP BY A.file_id
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要计算下一个月的时间,可以使用 `relativedelta` 对象的 `months` 属性。例如: ``` from datetime import datetime, timedelta from dateutil.relativedelta import relativedelta # 当前时间 now = datetime.now() # 下一个时间 next_month = now + relativedelta(months=1) print(next_month) ``` 这样就可以输出当前时间的下一个月的时间了。 ### 回答2: datetime模块的relativedelta对象可以用于计算下一个月的时间。 relativedelta对象是使用Python的datetime模块中的函数进行日期时间计算的一种方便的方法。在计算下一个月的时间时,可以使用relativedelta对象中的months属性来指定要增加或减少的月份数量。 下面是一个示例代码: ```python import datetime from dateutil.relativedelta import relativedelta # 获取当前日期 current_date = datetime.date.today() # 计算下一个月的日期 next_month_date = current_date + relativedelta(months=1) # 打印结果 print("当前日期:", current_date) print("下一个月的日期:", next_month_date) ``` 在上述代码中,首先导入了datetime模块和relativedelta对象。然后获取当前日期,并使用relativedelta对象的months属性设置增加1个月的时间间隔。最后,将当前日期与计算得到的下一个日期打印出来。 这样,就可以使用relativedelta对象计算下一个月的时间了。需要注意的是,如果当前日期超过了下个月的最后一天,那么计算结果会自动调整为下个月的最后一天。 ### 回答3: datetime 模块的 relativedelta 对象是一个强大的工具,可以用来计算时间上的增量和差量。我们可以使用它来计算下一个月的时间。 首先,我们需要导入 datetime 模块和 relativedelta 对象。然后,我们可以使用 datetime 模块中的 datetime 类来创建一个表示当前日期的对象。 接下来,我们可以使用 relativedelta 对象来计算下一个月的时间。具体步骤如下: 1. 使用 datetime 类创建当前日期的对象,例如 now = datetime.now()。 2. 创建一个 relativedelta 对象,即 delta = relativedelta(months=1)。在这个对象中,我们将 months 参数设置为 1,表示要增加一个月。 3. 使用 relativedelta 对象来计算下一个月的时间,即 next_month = now + delta。这将返回一个新的 datetime 对象,表示下一个月的时间。 下面是一个完整的示例代码: ```python import datetime from dateutil.relativedelta import relativedelta now = datetime.datetime.now() delta = relativedelta(months=1) next_month = now + delta print("当前日期:", now) print("下一个月的日期:", next_month) ``` 这段代码将输出当前日期和下一个月的日期。 请注意,使用 relativedelta 对象可以处理复杂时间增量和差量计算,例如增加/减少年、月、日、小时等,这使得计算时间上的变化变得非常方便和灵活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值