鱼C论坛

 找回密码
 立即注册
查看: 1405|回复: 0

pymssql 中参数为中文的问题

[复制链接]
发表于 2017-9-13 16:19:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zjxmzs 于 2017-9-14 11:30 编辑

        sql ='''SELECT COUNT(*) from ZTB_UserInfo where DATEDIFF(d, GETDATE(), ShenheDate) = 0 and Locked ='开启' '''      
        conn = pymssql.connect(host ="157.16.3.132",database ="zy",user="sa",password="zzzjjj2013",charset="GBK")     
        cur_jrrk = conn.cursor()   
        cur_jrrk.execute(sql.encode('gbk'))
        jrrk = cur_jrrk.fetchall()
        conn.close()
        print(jrrk )
环境python3,sqlervr2012的编码是GBK
语句在企业管理器中执行有数据,但放到execute里执行时就是0。
这个是打印的结果 [(0,)]
如果where后的条件是数字或者英文,显示的查询结果就是正常的。
求解。。。。。。。。。。。。。。

通过排除,查询字段为varchar时是正常的,Locked这个字段是nvarchar。所以通过修改查询语句后解决了。
修改后的语句:
cur_jrrk.execute('SELECT COUNT(*) from ZTB_UserInfo where DATEDIFF(d, GETDATE(), ShenheDate) = 0 and convert(varchar(10),Locked) =%s','开启'.encode('gbk'))

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-3-2 09:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表