В настоящее время я пишу программу, которая будет брать данные из электронной таблицы Excel и вставлять их в таблицу sql server, которую я создал в программе.
Ранее я назначил столбец datetime для nvarchar. (250) с целью заставить всю программу работать, однако, когда я собираюсь изменить ее на datetime, данные вводятся в неправильные столбцы? Остальная часть кода также работает с типом данных nvarchar.
import pyodbc
connection_string = r'connection_string'
data = 'file_path'
conn = pyodbc.connect(connection_string)
cur = conn.cursor()
createtable = """
create table table1(
ID Int NULL,
Date datetime(250) NULL,
City nvarchar(250) NULL,
Country nvarchar(250) NULL,
Image nvarchar(250) NULL,
Length nvarchar(250) NULL,
Date_Of_capture nvarchar(250) NULL,
Comments nvarchar(1000) NULL
)"""
truncatetable = """truncate table table1"""
with open(data) as file:
file.readline()
lines = file.readlines()
if cur.tables(table="table1").fetchone():
cur.execute(truncatetable)
for line in lines:
cols = line.split(',')
cols = line.replace("'", "")
sql = "INSERT INTO table1 VALUES({}, '{}', '{}', '{}', '{}', '{}','{}','{}')".format(cols[0], cols[1],cols[2], cols[3], cols[4], cols[5], cols[6], cols[7])
cur.execute(sql)
else:
cur.execute(createtable)
for line in lines:
cols = line.split(',')
sql = "INSERT INTO table1 VALUES({}, '{}', '{}', '{}', '{}', '{}','{}','{}')".format(cols[0], cols[1],cols[2], cols[3], cols[4], cols[5], cols[6], cols[7])
cur.execute(sql)
conn.commit()
conn.close()
Я ожидаю, что столбец даты будет отображаться как тип данных datetime, хотя он содержится в одном столбце, однако он меняет таблицы так, чтобы все столбцыневерны и каждая цифра даты находится в отдельном столбце?
Любая помощь с благодарностью. Спасибо.