mysql与python中2个数据字段的比较

2024-05-20 13:36:22 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的数据库

database

我要比较2个日期时间数据类型(日期时间\u组件和日期时间) 简单的比较。etc:date1>;date 2=“开启时间”

但我的问题是,我需要将数据一一比较(当然要循环) 这是我的密码

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()

结果是,比较代码只对数据库中的最后一个数据有效,因为比较代码肯定不会循环(令人困惑)

但是如果我把比较代码放在一个循环过程中

^{pr2}$

只有最后一个数据与所有数据比较


Tags: 数据代码import数据库executedatetimetime时间
2条回答

首先将表加载到一个数据帧中,然后np.哪里比较列以形成新列

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')

我希望它对你有用!在

首先,不需要两个单独的查询来匹配同一个表的两个列。它可以在同一个查询中完成。在

cur.execute("SELECT * FROM `tweet2`")
records = cur.fetchall()

重复记录:

^{pr2}$

相关问题 更多 >