python2.7 + MySQL 拼接SQL语句的技巧 (处理unicode,时间)

背景

在 Python2.7 中,可以使用单引号,双引号,三引号表示字符串,当字符串的值为中文时,则会默认转换成unicode。但是在MYSQL中,使用SQL语句时,直接用unicode作为列的查询条件 (例如: name = '\uxxx\uyyy\uzzz\urrr')时,无法匹配到数据。

 

方案

首先,SQL使用三引号标识

sql = '''SELECT * FROM %s ;'''

 

cursor.execute(sql %(table_name,))

其次,时间处理, 使用 '%s'

t_format = '%Y-%m-%d %h:%i:%s'

 

sql = '''SELECT name, DATE_FORMAT(create_time, '%s') as time_stamp, %s FROM %s WHERE create_time BETWEEN '%s' AND '%s' ;'''

 

cursor.execute(sql %(t_format, table_name,begin_time, end_time))

最后,处理中文, 使用 name = '%s'

sql = '''SELECT name, type FROM table_name WHERE name = '%s';'''

 

cursor.execute(sql %(name,))

 

posted @ 2023-02-06 17:19  TonyZhang24  阅读(345)  评论(0编辑  收藏  举报