37,721
社区成员
发帖
与我相关
我的任务
分享
import pymssql
conn = pymssql.connect(host ="157.14.0.1",database ="",user="sa",password="gzs1231",charset="GBK")
cur_jrrk = conn.cursor()
cur_jrrk.execute('SELECT COUNT(*) from ZTB_UserInfo where DATEDIFF(d, GETDATE(), ShenheDate) = 0 and Locked =%s','开启'.encode('gbk'))
jrrk = cur_jrrk.fetchall()
conn.close()
print(jrrk)
"""环境python3,sqlervr2012的编码是GBK
语句在企业管理器中执行有数据,但放到execute里执行时结果为0。
这个是打印的结果 [(0,)]
如果where后的条件是数字或者英文,显示的查询结果就是正常的。"""
cur_jrrk.execute('SELECT COUNT(*) from ZTB_UserInfo where DATEDIFF(d, GETDATE(), ShenheDate) = 0 and id =%s','123w'.encode('gbk'))
#这样查询是正常的,求解!!
cur_jrrk.execute('SELECT COUNT(*) from ZTB_UserInfo where DATEDIFF(d, GETDATE(), ShenheDate) = 0 and convert(varchar(10),Locked) =%s','开启'.encode('gbk'))
# -*- coding: utf-8 -*-
print('开启'.encode('gbk'))
print('123w'.encode('gbk'))
结果
b'\xbf\xaa\xc6\xf4'
b'123w'
所以,把encode去了能执行么