Невозможно вставить дату и время на сервер sql через pyodbc

Я пытаюсь вставить дату и время на SQL-сервер в среде Linux (raspbian) с использованием языка python. Далеко я смог подключиться к MS Sql, а также создал таблицу и im, используя pyodbc.

#! /user/bin/env python import pyodbc import datetime dsn = 'nicedcn' user = myid password = mypass database = myDB con_string = 'DSN=%s;UID=%s;PWD=%s;DATABASE=%s;' % (dsn, user, password, database) cnxn = pyodbc.connect(con_string) cursor = cnxn.cursor() string = "CREATE TABLE Database3([row name] varchar(20), [my date] date), [my time] time)" cursor.execute(string) cnxn.commit() 

Эта часть выполнялась без каких-либо ошибок. Это означает, что я правильно создал таблицу? Или есть проблема?

Я пытаюсь добавить дату и время таким образом.

  now = datetime.datetime.now() d1 = now.date() t2 = now.strftime("%H-%M-%S") cursor.execute("insert into Database3([row name], [my date], [my time]) values (?,?,?)", ('new1', d1, t2)) cnxn.commit() 

Но я получаю эту ошибку. pyodbc.ProgrammingError:

('HY004', '[HY004] [FreeTDS] [SQL Server] Недопустимый тип данных (O) (SQLBindParameter)')

Помоги мне, пожалуйста. заранее спасибо

Если вы находитесь в Windows, установите последнюю версию драйвера Microsoft ODBC для SQL Server, чтобы обеспечить поддержку типов DATE и TIME .

Если вы находитесь в Linux, используйте эту страницу, чтобы определить последний драйвер, доступный для вашего дистрибутива.

Используйте разделители параметров и передайте значения в качестве объектов даты и времени для текущего значения даты и времени .

 now = datetime.datetime.now() sql = "insert into Database3([row name], [my date], [my time]) values (?,?,?)" cursor.execute(sql, ('new1', now.date(), now.time())) cnxn.commit() 

Обратите внимание, что вышеуказанный код тестировался только в Windows.