所以我在 MySQL 中有一個表,用于存盤名稱和日期。我想撰寫一個查詢,獲取與我確定的某個日期最接近的日期。例如,我有:
x = datetime(2022, 01, 01)
這:
query = "SELECT date_ FROM set_payment7777 GROUP BY name"
mycursor.execute(query)
for cursor in mycursor:
print(cursor)
當前正在列印按名稱分組的表中的所有日期。我想添加一些東西,使其列印出每個名稱的所有日期,這些日期更接近變數 x。
例如,如果我們在表中有條目:“06-06-2021, James”還有“06-07-2021, James”和“04-04-2021, Helen”還有“05-04-2021, Helen” " 應該列印:06-07-2021 和 05-04-2021。
我希望你明白。
uj5u.com熱心網友回復:
如果我能理解這個問題,您可以在查詢結果中嘗試使用此解決方案:
import pandas as pd
from datetime import datetime
df = pd.DataFrame({'date': ['06/06/2021', '06/07/2021', '04/04/2021', '05/04/2021' ],
'name': ['James', 'James', 'Helen', 'Helen']})
df['date'] = pd.to_datetime(df['date'])
data_point = datetime(2022, 1, 1)
df['data_diff'] = df['date'] - data_point
# abs data_diff
df['data_diff'] = df['data_diff'].abs()
# select the rows where data_diff is less than a month
df['data_end'] = df['data_diff'].apply(lambda x: x.days)
uj5u.com熱心網友回復:
由于比較日期大于表中的所有日期,您可以將問題簡化為找到每個名稱的最大日期:
SELECT name, MAX(date)
FROM set_payment7777
GROUP BY name
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/391234.html
上一篇:為什么當函式超出范圍時,python不洗掉它的變數?
下一篇:計算串列中每個唯一元素的平均向量
