Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
1292,截断了错误的时间值:(MySQL和Python)_Python_Mysql - Fatal编程技术网

1292,截断了错误的时间值:(MySQL和Python)

1292,截断了错误的时间值:(MySQL和Python),python,mysql,Python,Mysql,我们已经开发了一个小程序,在这个程序中,我们希望获取一个值,同时搜索MySQL数据库中的其他值相同的巧合。为此,我们将比较时间,并使用以下SQL查询: value = pd.read_sql('SELECT third_temp_lpn FROM Raw_Validated WHERE TIME(time_end) = TIME("%s") AND third_temp_lpn = "%s"' % (x + datetime.timedelta(minutes=20), list_lpn_tem

我们已经开发了一个小程序,在这个程序中,我们希望获取一个值,同时搜索MySQL数据库中的其他值相同的巧合。为此,我们将比较时间,并使用以下SQL查询:

value = pd.read_sql('SELECT third_temp_lpn FROM Raw_Validated WHERE TIME(time_end) = TIME("%s") AND third_temp_lpn = "%s"' % (x + datetime.timedelta(minutes=20), list_lpn_temp[-1]), conn).astype(float).values
在这里,我们使用时间(TIME_end),在MySQL数据库上使用它时,它可以完美地工作。该查询应该将时间与datetime隔离,我们将其设置为time(%s),这是python中的datetime(请参阅完整代码)

在python中执行上述查询时,我们收到一个奇怪的错误,如下所示:

Warning: (1292, "Truncated incorrect time value: '2019-08-31'")
    cursor.execute(statement, parameters)
有人能帮忙吗

代码

import pandas as pd
import numpy as np
import pprint
import datetime
import math
from pandas.io import sql
from sqlalchemy import create_engine

list_lpn_temp = []
times = []
values = []

engine = create_engine("mysql://root:DTULab@123@localhost/Afgangsprojekt")
conn = engine.connect()

firstTime = pd.read_sql('SELECT MIN(timestamp) FROM Raw_Data', conn).astype(str).values.tolist()
firstTime = (pd.to_datetime(firstTime[0])-datetime.timedelta(minutes=10)).round('20T')

lastTime = pd.read_sql('SELECT MAX(timestamp) FROM Raw_Data', conn).astype(str).values.tolist()
lastTime = (pd.to_datetime(lastTime[0])-datetime.timedelta(minutes=10)).round('20T')

print (firstTime[0])
print (lastTime[0])

index = pd.date_range(start=firstTime.min(), end=lastTime.max(), freq='20T')

for x in index:

    a_temp = pd.read_sql('SELECT temperature FROM Raw_Data WHERE topic = "lpn1" AND timestamp > "%s" AND timestamp < "%s" ORDER BY timestamp DESC LIMIT 1' % (x, x+datetime.timedelta(minutes=20)), conn).astype(float).values
    a_temp = a_temp.astype(int)

    if a_temp:
        list_lpn_temp.extend(a_temp[0])
    else:
        print (x, " | ", x + datetime.timedelta(minutes=20))
        value = pd.read_sql('SELECT third_temp_lpn FROM Raw_Validated WHERE TIME(time_end) = TIME("%s") AND third_temp_lpn = "%s"' % (x + datetime.timedelta(minutes=20), list_lpn_temp[-1]), conn).astype(float).values
        time = pd.read_sql('SELECT time_end FROM Raw_Validated WHERE TIME(time_end) = TIME("%s") AND third_temp_lpn = "%s"' % (x + datetime.timedelta(minutes=20), list_lpn_temp[-1]), conn).astype(str).values
        values.append(value)
        times.append(time)
        print (values[0])
        print (times[0])
        list_lpn_temp.append(float('nan'))

print (list_lpn_temp)
将熊猫作为pd导入
将numpy作为np导入
导入pprint
导入日期时间
输入数学
从pandas.io导入sql
从sqlalchemy导入创建引擎
列表\u lpn\u temp=[]
时间=[]
值=[]
引擎=创建引擎(“mysql://root:DTULab@123@localhost/阿夫冈项目“
conn=引擎连接()
firstTime=pd.read\u sql('SELECT MIN(timestamp)FROM Raw\u Data',conn.).astype(str).values.tolist()
firstTime=(pd.to_datetime(firstTime[0])-datetime.timedelta(minutes=10)).round('20T'))
lastTime=pd.read\u sql('SELECT MAX(timestamp)FROM Raw\u Data',conn.).astype(str).values.tolist()
lastTime=(pd.to_datetime(lastTime[0])-datetime.timedelta(分钟=10)).round('20T')
打印(第一次[0])
打印(上次[0])
index=pd.date\u范围(start=firstTime.min(),end=lastTime.max(),freq='20T')
对于索引中的x:
a_temp=pd.read_sql('从原始数据中选择温度,其中topic=“lpn1”和timestamp>%s”和timestamp<%s“按时间戳描述限制1%”(x,x+datetime.timedelta(分钟=20)),conn)。astype(float)。值
a_temp=a_temp.aType(int)
如果出现以下情况:
列表lpn临时扩展(临时[0])
其他:
打印(x,“|”,x+datetime.timedelta(分钟=20))
value=pd.read\u sql('selectthird\u temp\u lpn FROM Raw\u Validated WHERE TIME(TIME\u end)=TIME(“%s”)和third\u temp\u lpn=“%s”””(x+datetime.timedelta(minutes=20),list\u lpn\u temp[-1]),conn)。astype(float)。value
time=pd.read\u sql('SELECT time\u end FROM Raw\u Validated WHERE time(time\u end)=time(“%s”)和third\u temp\u lpn=“%s”'”(x+datetime.timedelta(minutes=20),list\u lpn\u temp[-1]),conn)。astype(str value
values.append(值)
times.append(时间)
打印(值[0])
打印(次[0])
列表\u lpn\u临时追加(浮点('nan'))
打印(列表\u lpn\u温度)

2019-08-31
值来自何处?
time\u end
列?@SalmanA是的,time\u end='2019-08-31 18:20:00'等等。我不确定我是否理解。我们将时间与约会时间隔离开来。时间=2019-08-31 18:20:00,我们只想要“18:20:00”。你是说我们的TIME()必须设置为string吗?TIME\u end列的数据类型是什么?如果是varchar,则可能存在无效的datetime值<代码>选择时间('2019-08-31')应该产生警告和错误结果,而不是
00:00:00
。实际上,数据库上的数据类型是文本(我想不是很好)