我正在使用带有MS SQL驱动程序的Python 2.7的pymssql。在对具有sql_variant列的表运行某些查询时,我收到了错误的数据。当我投射数据时,我能够获得正确的值。 有什么方法可以跳过明确的CAST。
答案 0 :(得分:0)
现在已经打了一段时间同样的问题,但我还没有找到任何修复方法。 CAST似乎是唯一可行的,所以我不得不将我的SQL重写为:
sql = 'SELECT *, CAST (sql_varian_field AS BIGINT) as my_field_fixed FROM myTable'
并且只是引用那里的最后一栏。
虽然pymssql可以在连接conn_properties时添加一些sql:
pymssql.connect(server='.', user='', password='', database='', timeout=0, login_timeout=60, charset='UTF-8', as_dict=False, host='', appname=None, port='1433', conn_properties, autocommit=False, tds_version='7.1')
是否有任何SQL专家可以回答以下问题:是否有任何简单的SQL命令可以使DB将所有sql_variant字段作为整个会话的某些预定义类型处理?什么东西可以在调用pymssql.connect时作为conn_propeties传递?