Python 在SQLServer2012中查询POSIXct datetime列时出现PYODBC错误

Python 在SQLServer2012中查询POSIXct datetime列时出现PYODBC错误,python,sql-server,pyodbc,Python,Sql Server,Pyodbc,我正在使用Python 3.6.0 | Anaconda 4.3.0(64位)、sqlalchemy和pyodbc查询MSSQL 2012服务器。我可以查询任何列,但不能查询具有POSIXct时间的列 这就是我得到的错误。错误似乎是由pyodbc引起的 编程错误:(pyodbc.ProgrammingError)('odbcsqltype-155为 尚不支持。列索引=0类型=-155',“HY106') 这是我的密码: import sqlalchemy as sq import pandas

我正在使用Python 3.6.0 | Anaconda 4.3.0(64位)、sqlalchemy和pyodbc查询MSSQL 2012服务器。我可以查询任何列,但不能查询具有POSIXct时间的列

这就是我得到的错误。错误似乎是由pyodbc引起的

编程错误:(pyodbc.ProgrammingError)('odbcsqltype-155为 尚不支持。列索引=0类型=-155',“HY106')

这是我的密码:

import sqlalchemy as sq
import pandas as pd

engine = sq.create_engine('mssql+pyodbc://sqlservertest/Mart?driver=SQL+Server+Native+Client+11.0')
m = sq.MetaData(engine) 
insurance = sq.Table('Insurance', m, autoload=True, schema="Insurance", autoload_with=engine)
stmt = sq.select([insurance.c.ModifiedAt])
df = pd.read_sql(stmt, engine) 
我试图查询的列如下所示:

ModifiedAt
2016-04-01 23:24:08.0000000 -06:00
2016-04-01 23:37:27.0000000 -06:00
2016-04-01 23:31:01.0000000 -06:00
2016-04-02 09:39:38.0000000 -06:00
2016-04-04 10:26:34.0000000 -10:00
2016-04-04 11:10:20.0000000 -10:00
2016-04-04 11:32:54.0000000 -10:00
2016-04-04 11:42:04.0000000 -10:00
2016-04-04 11:48:19.0000000 -10:00
2016-04-05 08:32:38.0000000 -10:00

如何解决此问题?

尝试使用较旧的“SQL Server”驱动程序(
…?driver=SQL+Server'
),看看是否可以将datetimeoffset值作为字符串返回。@GordThompson,这很有效!!多谢各位
ModifiedAt
2016-04-01 23:24:08.0000000 -06:00
2016-04-01 23:37:27.0000000 -06:00
2016-04-01 23:31:01.0000000 -06:00
2016-04-02 09:39:38.0000000 -06:00
2016-04-04 10:26:34.0000000 -10:00
2016-04-04 11:10:20.0000000 -10:00
2016-04-04 11:32:54.0000000 -10:00
2016-04-04 11:42:04.0000000 -10:00
2016-04-04 11:48:19.0000000 -10:00
2016-04-05 08:32:38.0000000 -10:00