git pyfleet en gitea.xiberus
This commit is contained in:
Executable
+88
@@ -0,0 +1,88 @@
|
||||
import sqlite3
|
||||
from datetime import datetime
|
||||
|
||||
DB = "nexus.db"
|
||||
|
||||
FORMATOS = [
|
||||
"%m/%d/%y %H:%M:%S",
|
||||
"%m/%d/%y"
|
||||
]
|
||||
|
||||
def convertir_fechas(db, tabla, campos):
|
||||
|
||||
for campo in campos:
|
||||
|
||||
print(f"\n=== {tabla}.{campo} ===")
|
||||
|
||||
total = db.execute(
|
||||
f"SELECT COUNT(*) FROM {tabla} "
|
||||
f"WHERE {campo} IS NOT NULL AND TRIM({campo}) <> ''"
|
||||
).fetchone()[0]
|
||||
|
||||
print(f"Registros con datos: {total}")
|
||||
|
||||
rows = db.execute(
|
||||
f"SELECT id, {campo} FROM {tabla} "
|
||||
f"WHERE {campo} IS NOT NULL AND TRIM({campo}) <> ''"
|
||||
).fetchall()
|
||||
|
||||
actualizados = 0
|
||||
errores = 0
|
||||
|
||||
for id_, valor in rows:
|
||||
|
||||
convertido = False
|
||||
|
||||
for formato in FORMATOS:
|
||||
try:
|
||||
fecha = datetime.strptime(valor.strip(), formato)
|
||||
nueva = fecha.strftime("%Y-%m-%d")
|
||||
|
||||
db.execute(
|
||||
f"UPDATE {tabla} SET {campo}=? WHERE id=?",
|
||||
(nueva, id_)
|
||||
)
|
||||
|
||||
actualizados += 1
|
||||
convertido = True
|
||||
break
|
||||
|
||||
except ValueError:
|
||||
pass
|
||||
|
||||
if not convertido:
|
||||
print(f"Error -> id={id_} valor='{valor}'")
|
||||
errores += 1
|
||||
|
||||
db.commit()
|
||||
|
||||
print(f"Actualizados: {actualizados}")
|
||||
print(f"Errores: {errores}")
|
||||
|
||||
|
||||
db = sqlite3.connect(DB)
|
||||
|
||||
# Tabla vehiculos
|
||||
convertir_fechas(
|
||||
db,
|
||||
"vehiculos",
|
||||
[
|
||||
"f_alta",
|
||||
"f_baja",
|
||||
"itv_ultima",
|
||||
"f_destino_situacion"
|
||||
]
|
||||
)
|
||||
|
||||
# Tabla historial
|
||||
convertir_fechas(
|
||||
db,
|
||||
"historial",
|
||||
[
|
||||
"fecha"
|
||||
]
|
||||
)
|
||||
|
||||
db.close()
|
||||
|
||||
print("\nConversión terminada.")
|
||||
Reference in New Issue
Block a user