12345678910111213141516171819202122232425262728293031323334353637 |
- # -*- coding: utf-8 -*-
- """
- @author: yq
- @time: 2024/11/8
- @desc: 处理占位符的函数
- """
- import datetime
- import re
- import pytz
- def get_date(offset: int = 0) -> str:
- current_date = datetime.datetime.now(pytz.timezone("Asia/Shanghai")).date() + datetime.timedelta(days=offset)
- return current_date.strftime("%Y-%m-%d")
- def _fill_date_placeholder(sql: str):
- date_placeholder = re.findall(r"{{date.*?}}", sql)
- if date_placeholder:
- date_placeholder = date_placeholder[0]
- offset = date_placeholder.replace("{{date", "").replace("}}", "")
- if len(offset) > 0:
- symbol = offset[0:1]
- offset = int(offset[1:])
- if "-" == symbol:
- offset = -offset
- else:
- offset = 0
- date_new = get_date(offset)
- sql = sql.replace(date_placeholder, repr(date_new))
- return sql
- def f_fill_placeholder(sql: str):
- sql = _fill_date_placeholder(sql)
- return sql
|