Yeni bir veritabanına taşınması gereken bir veritabanım var. Benim fikrim bütün eski girdileri okuyan, onları yeni formatta dönüştüren ve yeni veritabanına gönderen bir python betiğidir. Sorun, tarihin (zaman) farklı şekilde depolanmasıdır. Eski db'de 5 sütun (yıl, ay, gün, saat, dakika) vardır, ancak yeni olan sadece bir datetime alanıyla çalışır (YYYY-AA-GG ss: dd: ss).Mysql datetime alanı için bir strftime-object oluştur ve ekle
Python böyle bir şey denerseniz: Hatta beklenenden daha başka zaman olsun
import time
t = time.mktime((2015,11,29,14,30,0,0*,246*,-1*)) # * not sure about these values
print time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(t))
:
2015-11-29 13:30:00
ben 180k girişlerinin doğru tarih saat biçimi için nasıl alabilirim veya bu belki de bir datetime alanına bir değer girmenin zaten yanlış yolu?
DÜZENLEME:
import MySQLdb
mysql_opts = {
'host': "123.45.67.89",
'user': "user",
'pass': "password",
'db': "db"}
t = time.mktime((2015, 11, 29, 14, 30, 0, 0, 0, 0))
date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t))
data = [date,...]
mysql = MySQLdb.connect(mysql_opts['host'],mysql_opts['user'],mysql_opts['pass'],mysql_opts['db'])
cursor = mysql.cursor()
cursor.execute("INSERT INTO table (date, ...) VALUES(%s,...)",(data[0],...))
mysql.commit()
mysql.close()
Ben bu hatayı alıyorum bu denerseniz:
TypeError: not all arguments converted during string formatting
başka ne bir girdi ekleyebilirsiniz yapmam gerekiyor önce? : S
,% aynı sayıda yok gibi görünüyor Verilerin sayısı olarak –