Maison  >  Questions et réponses  >  le corps du texte

Formatage des valeurs de date pour MySql

Mon plan est d'insérer une date (day_of_test) dans une base de données MySql où le format des données est référencé comme date.

J'ai dû conserver la syntaxe dans le format que vous voyez ci-dessous. Mais malheureusement, mes tentatives pour stocker la date spécifiquement sous forme de chaîne dans la syntaxe VALUES(%s...) ne semblent pas fonctionner.

Est-ce que quelqu'un connaît le moyen le plus simple d'ajuster la syntaxe pour réussir à insérer day_of_test ?

Merci beaucoup à tous

import mysql.connector

mydb = mysql.connector.connect(host="34.xxx.xxx.xxx", user="xxxx", password="xxxxx", database='btc-analysis-db')

c = mydb.cursor()
btc_est = 150.2
sap_close = 100.23
gold_close = 120.2
bonds_close = 210.12
btc_actual = 130.12
day_of_test = "2022-04-20"

c = mydb.cursor()

c.execute(
    "INSERT INTO `ML1`(`day_of_test`, `btc_est`, `sap_close`, `bonds_close`, `gold_close`, `btc_actual`) VALUES (%s, %d, %d, %d, %d, %d);" % (
        day_of_test, btc_est, sap_close, bonds_close, gold_close, btc_actual))

mydb.commit()

c.execute("select * from ML1")

result = c.fetchall()

P粉627136450P粉627136450235 Il y a quelques jours293

répondre à tous(1)je répondrai

  • P粉958986070

    P粉9589860702024-02-27 11:12:02

    Si vous utilisez le format de chaîne Python, alors il vous manque des guillemets autour de la valeur de date, votre syntaxe devrait être :

    c.execute(
        "INSERT INTO `ML1`(`day_of_test`, `btc_est`, `sap_close`, `bonds_close`,
        `gold_close`, `btc_actual`) VALUES ('%s', %d, %d, %d, %d, %d);" % (
            day_of_test, btc_est, sap_close, bonds_close, gold_close, btc_actual))

    Mais tu ne devrais pas faire ça. Vous devez utiliser des instructions préparées (pour éviter l'injection SQL et d'autres problèmes), et votre syntaxe devrait ressembler à ceci :

    c.execute(
        "INSERT INTO `ML1`(`day_of_test`, `btc_est`, `sap_close`, `bonds_close`, 
        `gold_close`, `btc_actual`) VALUES (%s, %s, %s, %s, %s, %s);", (
            day_of_test, btc_est, sap_close, bonds_close, gold_close, btc_actual))

    répondre
    0
  • Annulerrépondre