我有一个包含800万行每月气象站数据的气候数据表。不幸的是,年/月列的格式实际上是“yyyy/mm”。代码的目的是从每行中提取日期,将其重新格式化为“yyyy-mm-dd”,然后将其放入新的日期列中。然后我可以做日期操作
因此,我想为fetchall()中的每一行将datyrmth列设置为变量new_date
结果甚至都没有错!我搞砸了什么
import pymysql
pymysql.install_as_MySQLdb()
import MySQLdb
my_db = MySQLdb.connect(
host="localhost",
user=" ",
passwd=" ",
database="gsom_data")
my_cursor = my_db.cursor()
my_cursor.execute("select * from gsom_data.ven_tbl_date")
for row in my_cursor.fetchall():
id_row = str(row[0])
prevdate = str(row[1])
datYear = prevdate[:prevdate.index("/"):]
datMonth = prevdate[prevdate.index("/") + 1:]
new_date = datYear + "-" + datMonth + "-01"
my_cursor.execute("Update ven_tbl_date set datyrmth={0} where id={1}".format(new_date, id_row))
print(id_row + " " + prevdate + " " + datYear + " " + datMonth + " " + new_date)
my_db.commit()
my_db.close()
以下是前五行中的相关列:
id prevdate datyrmth
7952901 1959/01
7952902 1963/11
7952903 1965/01
7952904 1959/05
7952905 1960/09
以下是打印功能的输出:
id prevdate datYear datMonth new_date
7952901 1959/01 1959 01 1959-01-01
7952902 1963/11 1963 11 1963-11-01
7952903 1965/01 1965 01 1965-01-01
7952904 1959/05 1959 05 1959-05-01
7952905 1960/09 1960 09 1960-09-01
以下是更新表的前五行:
id prevdate datyrmth(i.e., new_date)
7952901 1959/01 1957
7952902 1963/11 1951
7952903 1965/01 1963
7952904 1959/05 1953
7952905 1960/09 1950
目前没有回答
相关问题 更多 >
编程相关推荐