这是我的数据库
我想比较2个日期时间数据类型(datetime_comp和date_time) 比较简单。等等:date1> date 2 =“ On_Time”
但是我的问题是,我需要将数据一一比较(肯定会循环) 这是我的代码
from datetime import datetime
import pymysql
import time
#Declare Connection
conn = pymysql.connect(host='localhost', port='', user='root', passwd='', db='tes_coba', use_unicode=True, charset="utf8mb4")
cur = conn.cursor()
EW = "Tepat Waktu"
LW = "Tidak Tepat Waktu"
#get data from database
cur.execute("SELECT datetime_comp FROM `tweet2`")
row1 = cur.fetchall()
cur.execute("SELECT date_time FROM `tweet2`")
row2 = cur.fetchall()
n = 1
for date1 in row1:
print(date1)
for date2 in row2:
print(date2)
if date1 > date2:
Result=EW
elif date1 < date2:
Result=LW
print(Result)
cur.execute("UPDATE tweet2 SET on_time=%s WHERE no=%s AND relevance='Relevan'",(str(Result), str(n)))
n = n + 1
conn.commit()
cur.close()
conn.close()
结果是,比较代码只能与数据库中的最后一个数据一起使用,因为比较代码不能确定地循环(混乱)
但是如果在循环过程中将比较代码放到一个,
for date1 in row1:
print(date1)
for date2 in row2:
print(date2)
if date1 > date2:
Result=EW
elif date1 < date2:
Result=LW
仅最后一个数据与所有数据进行比较
答案 0 :(得分:2)
首先,您不需要两个单独的查询来匹配同一表的两列。可以在同一查询中完成。
[104, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100]
重复记录:
cur.execute("SELECT * FROM `tweet2`")
records = cur.fetchall()
答案 1 :(得分:1)
首先将表格加载到数据框和np.where中,以比较列以形成新列
import pymysql
import time
import numpy as np
import pandas as pd
#Declare Connection
conn = pymysql.connect(host='localhost', port='', user='root', passwd='', db='tes_coba', use_unicode=True, charset="utf8mb4")
query = "SELECT date_time,datetime_comp FROM tweet2"
df = pd.read_sql(query, conn)
df['result'] = np.where(df['datetime_comp']>df["date_time"], 'Tepat Waktu', 'Tidak Tepat Waktu')
我希望它对您有用!