首页 > 数据库 >数据库导出数据至本地

数据库导出数据至本地

时间:2024-04-08 15:22:17浏览次数:32  
标签:end data 数据库 time 导出 start 本地 sql yue

import json
import calendar
import re

from bin import *

ismonthwrite=False#是否按月写入,数据量大时可开启
start_time="2024-02-27"#开始时间
end_time="2024-03-26"#结束时间
wirte_path = r"C:\Users\isoftstone\Desktop\导出.xlsx"#写入的文件路径
read_path = r"C:\Users\isoftstone\Desktop\sql.txt"#读取文件的路径
global between_time
between_time="o.action_time"#sql的batween时间的字段名称






global data
datas={}
with open(read_path, 'r',encoding="utf-8") as file:
sql = file.read()
aa=datetime.datetime.now()#记录代码执行时间
start_timelist=start_time.split("-")
end_timelist=end_time.split("-")
start_time_rq=int(start_timelist[2])#开始日期1-31号
start_time_yue =int(start_timelist[1])#开始月份
start_time_nian =int(start_timelist[0])#开始年份年份
end_time_r=int(end_timelist[2])#开始日期1-31号
end_time_yue=int(end_timelist[1])#结束月份
end_time_nian=int(end_timelist[0])#结束年份
sql_list=[]
while start_time_nian<=end_time_nian:
for yue in range(start_time_yue,end_time_yue+1):
day, daynum = calendar.monthrange(start_time_nian, yue)#获取该年该月的一个月有多少天
# 获取当前日期时间
now = datetime.datetime.now()
# 获取当前的月份和日期
month = now.month
day_of_month = now.day
data_vale = []#写入的数据表
if yue==start_time_yue:
start_time_rq=start_time_rq
if end_time_yue ==start_time_yue:
end_time_rq=end_time_r
else:
end_time_rq=daynum
else:
start_time_rq=1
end_time_rq=end_time_r
for start_time_r in range(start_time_rq,end_time_rq+1):
yuanshisql=sql
if yue == month and day_of_month ==start_time_r-1:
break
print(yue, start_time_r)

str_yue=str(yue).zfill(2)
str_start_time_r = str(start_time_r).zfill(2)
sql=sql+f"""
and {between_time} between '{start_time_nian}-{str_yue}-{str_start_time_r} 00:00:00'
and '{start_time_nian}-{str_yue}-{str_start_time_r} 23:59:59' """
sql_list.append(sql)
sql = yuanshisql
start_time_nian+=1


# for i in sql_list:
# print(i)
def select_data(sql,data_vale={},ku="生产_营销_十分到家_USS2.0_workorder_MYSQL_从(10.68.70.32)",biao="uss_workorder"):
while 1:
try:
statu2, data= DB_sql(sql, database=biao,example=ku)
# statu2, data =["a","b","c","d"],[1,2,3,4]
break
except:
sleep(2)
statu2, data = DB_sql(sql, database=biao, example=ku)
# print(between_time)
check_headle = between_time
check_tail = "and"
sqltime = re_get_list_str(check_headle, check_tail, sql)
# print(sqltime)
# print(len(sqltime))
sqltime = re.findall(r'\d+', sqltime[-1])[0:3]
timedate = ""
for vales in sqltime:
timedate += vales

timedate = int(timedate)
# print(timedate)
data_vale[timedate] = []
datas[timedate]=[]

if statu2:
if len(statu2) != len(set(statu2)):
return False,"列表中存在重复项,写入的表头不允许有重复项"
global header
header = statu2

# print(len(datas))
for i in data:

data_vale[timedate].append(i)
datas[timedate].append(i)

else:
# print(yue, start_time_r,data,sql)
return f"{timedate}没有查到数据"
return timedate


executor_Thread(30,select_data,sql_list,num=1,isprint=True)
datakey=[]
data1=[]
for i in datas:
datakey.append(i)
datakey.sort()

for values in datakey:
# print(datas[values])
if ismonthwrite:
data1.append(datas[values])
else:
for value in datas[values]:
data1.append(value)


append_data_to_excel(wirte_path, data1, header=header)

print(aa,datetime.datetime.now())


标签:end,data,数据库,time,导出,start,本地,sql,yue
From: https://www.cnblogs.com/xieweiwen/p/18121257

相关文章

  • 国产开源数据库OpenGauss的安装运行
    步骤一:OpenGauss的安装环境OS:openEuler20.0364bitwithARM架构:arm64部署:单机安装过程1、环境配置安装依赖包:yuminstalllibaio-develflexbisonncurses-develglibc-develpatchreadline-devel2、创建xml配置文件创建cluster_config.xml配置文件并进行配置......
  • 「Mac」gitlab 更新了登录密码后,本地git仓库拉取推送等无法操作,提示无权限了 —— 解
    ​起因:公司git账户与oa账号关联,oa密码修改了,导致git远程密码修改了,本地的项目再做拉取推送时发现拉取不下来了解决办法:1、查看本地git配置cat.gitconfig2、删除git本地信息nano.gitconfig3、Mac应用程序钥匙串访问,找到对应git项,将其删除4、重新配置一下git邮箱、用......
  • Datagrip连接Kingbase数据库
    一、添加驱动路径: 二、检查Linux服务器上是否关闭防火墙并开启kingbase服务2.1检查是否开启防火墙systemctlstatusfirewalld关闭防火墙systemctlstopfirewalld 2.2开启kingbase服务 三、配置Datagrip3.1将kingbase8-8.6.0.jar添加到datagrip......
  • Web API(五)之BOM操作&window对象&本地存储
    WebAPI(五)之BOM操作&window对象&本地存储js组成window对象定时器-延迟函数JS执行机制location对象navigator对象histroy对象本地存储localStoragesessionStorage(了解)localStorage存储复杂数据类型综合案例数组map方法数组join方法js组成JavaScript的组成ECMA......
  • ADNI数据库的使用与脑影像数据下载
    首先找到ADNI的官网,在官网上也有一些关于数据的简介可以帮助你对ADNI数据库多一些了解,以及更加方便地找到你所需要的数据。点击官网连接进入网站,先点击数据与样本,然后在下方找到登陆注册,进入黑色界面之后找到右上角账号登陆即可,注意若是此步骤无法点击登录是因为没有接受cooki......
  • ADNI数据库T1MRI数据处理——基于freesurfer与matlab(1)
    在从ADNI上下载得到T1MRI数据之后,我们需要对数据进行处理才能进一步使用。在信息获取过程中受到各种因素的干扰,导致数据内容不一致,因此我们选择使用freesurfer对数据进行一键式处理。freesurfer必须要装载于linux系统上,安装成功的标志如图所示。对数据进行reconall命令进行3......
  • 开源大模型本地私有化部署
    1、安装ollamaollma下载https://ollama.com/download/windowslinux安装curl-fsSLhttps://ollama.com/install.sh|sh运行ollamarungemma:2bollamarungemma:7b使用端口114342、下载open-webui代码https://github.com/open-webui/open-webui.git生成目录open-webuidoc......
  • Orcale数据库导入导出备份
    orcale数据库的导入导出及备份全库导入导出导出exp用户名/密码file=想要导出之后文件名 full=y用户名必须拥有dba权限,可以不指定文件名导入imp用户名/密码full=yfile=导出之后的文件名.dmp如果不指定文件名则自动识别默认名按用户导入导出导出exp用户名/......
  • 模型代码理解本地知识库
    importosfromlangchain.chainsimportRetrievalQAfromlangchain_community.document_loadersimportTextLoaderfromlangchain_community.embeddingsimportOllamaEmbeddingsfromlangchain_community.llms.ollamaimportOllamafromlangchain_community.vectors......
  • SQL 跨服务器跨数据库操作数据
    execsp_configure'showadvancedoptions',1reconfigureexecsp_configure'AdHocDistributedQueries',1reconfigurehttps://www.cnblogs.com/tohen/p/4228030.html(解决SQLServer阻止了对组件'AdHocDistributedQueries'的STATEMENT&......