cari

Rumah  >  Soal Jawab  >  teks badan

Memformat Nilai Tarikh untuk MySql

Rancangan saya adalah untuk memasukkan tarikh (hari_ujian) ke dalam pangkalan data MySql di mana format data dirujuk sebagai tarikh.

Saya terpaksa menyimpan sintaks dalam format yang anda lihat di bawah. Tetapi malangnya percubaan saya untuk menyimpan tarikh secara khusus sebagai rentetan dalam sintaks VALUES(%s...) nampaknya tidak berfungsi.

Adakah sesiapa tahu cara paling mudah untuk melaraskan sintaks supaya berjaya memasukkan day_of_test?

Terima kasih banyak-banyak semua

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粉627136450302 hari yang lalu346

membalas semua(1)saya akan balas

  • P粉958986070

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

    Jika anda menggunakan format rentetan python, maka anda kehilangan petikan sekitar nilai tarikh, sintaks anda hendaklah:

    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))

    Tetapi anda tidak sepatutnya berbuat demikian. Anda harus menggunakan pernyataan yang disediakan (untuk mengelakkan suntikan SQL dan masalah lain), dan sintaks anda sepatutnya kelihatan seperti ini:

    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))

    balas
    0
  • Batalbalas