import sqlite3 from datetime import datetime db = sqlite3.connect('nexus.db') # Ver cuÔntos registros tienen itv con datos total = db.execute("SELECT COUNT(*) FROM vehiculos WHERE itv IS NOT NULL AND itv != ''").fetchone()[0] print(f'Registros con ITV: {total}') # Ver ejemplos del formato actual ejemplos = db.execute("SELECT id, itv FROM vehiculos WHERE itv IS NOT NULL AND itv != '' LIMIT 5").fetchall() print('Ejemplos actuales:') for r in ejemplos: print(f' id={r[0]} itv={r[1]}') # Convertir MM/DD/YY HH:MM:SS -> YYYY-MM-DD rows = db.execute("SELECT id, itv FROM vehiculos WHERE itv IS NOT NULL AND itv != ''").fetchall() actualizados = 0 errores = 0 for row in rows: id_, itv_raw = row try: # Intentar formato MM/DD/YY HH:MM:SS dt = datetime.strptime(itv_raw.strip(), '%m/%d/%y %H:%M:%S') itv_nuevo = dt.strftime('%Y-%m-%d') db.execute('UPDATE vehiculos SET itv=? WHERE id=?', (itv_nuevo, id_)) actualizados += 1 except: try: # Intentar formato MM/DD/YY sin hora dt = datetime.strptime(itv_raw.strip(), '%m/%d/%y') itv_nuevo = dt.strftime('%Y-%m-%d') db.execute('UPDATE vehiculos SET itv=? WHERE id=?', (itv_nuevo, id_)) actualizados += 1 except: print(f' Error en id={id_} valor={itv_raw}') errores += 1 db.commit() print(f'Actualizados: {actualizados}, Errores: {errores}') # Verificar resultado ejemplos = db.execute("SELECT id, itv FROM vehiculos WHERE itv IS NOT NULL AND itv != '' LIMIT 5").fetchall() print('Ejemplos tras conversión:') for r in ejemplos: print(f' id={r[0]} itv={r[1]}') db.close()