46 lines
1.7 KiB
Python
Executable File
46 lines
1.7 KiB
Python
Executable File
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() |