sqlite3:靠近“(”:语法错误 - python 代码

sqlite3 : near "(": syntax error - python code

我收到此查询的语法错误,无法弄清楚我在其中犯了什么错误。

db = sqlite3.connect('C:\Users\Siva Sakthi Velan\Downloads\Intranet\mobiveil.db')
sql = """select cast(sum(datediff(second,0,Total_Hours))/3600 as varchar(12)) + ':' +right( '0' + cast(sum(datediff(second,0,Total_Hours))/60%60 as varchar(2)),2) +':' + right('0' + cast(sum(datediff(second,0,Total_Hours))%60 as varchar(2)),2) from  timesheet order by Date group by Task_Category where Date >=? and Date<=?"""
sq1 = db.execute(sql,(str(From),str(To)))

error: near "(": syntax error 

我该如何纠正?

你不能在 SQLite 中使用 right();有 no such function。使用 substr() 代替:

substr(...., -2)

获取最后两个字符。

您还需要固定 wheregroup byorder by 子句的顺序;这些有 strict order:

...
from timesheet
where Date >=? and Date<=?
group by Task_Category
order by Date

先是WHERE,然后是GROUP BY,然后是ORDER BY