Python日期切段,为后续分批查询数据库作准备

import datetime
import pandas as pd

def split_time_ranges(from_time, to_time, frequency):
    from_time, to_time = pd.to_datetime(from_time), pd.to_datetime(to_time)
    time_range = list(pd.date_range(from_time, to_time, freq='%sS' % frequency))
    if to_time not in time_range:
        time_range.append(to_time)
    time_range = [item.strftime("%Y-%m-%d") for item in time_range]
    time_ranges = []
    for item in time_range:
        f_time = item
        t_time = (datetime.datetime.strptime(item, "%Y-%m-%d") + datetime.timedelta(seconds=frequency))
        if t_time >= to_time:
            t_time = to_time.strftime("%Y-%m-%d")
            time_ranges.append([f_time, t_time])
            break
        time_ranges.append([f_time, (datetime.datetime.strptime(t_time.strftime("%Y-%m-%d"), '%Y-%m-%d') + datetime.timedelta(days=-1)).strftime("%Y-%m-%d")])
    return time_ranges


if __name__ == '__main__':
    s = '2021-10-01'
    e = '2021-11-01'
    frequency = 60 * 60 * 24 * 15
    time_ranges = split_time_ranges(s, e, frequency)
    print(time_ranges)

运行结果:

[['2021-10-01', '2021-10-15'], ['2021-10-16', '2021-10-30'], ['2021-10-31', '2021-11-01']]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值