我有一个数据库,其[clock seconds]值保存在一列" ablaufdatum"中。 我有一个Tcl脚本从现在开始获取[时钟秒]并选择所有旧条目。但不知何故,以下查询无效,我无法找出原因。你能救我吗?
set systemTime [clock seconds]
set queryanzahlalteuser [::mysql::query $db {SELECT COUNT(*) FROM tbl_ticket WHERE aktiv='1' AND erstellt='1' AND ablaufdatum<'$systemTime'}]
ablaufdatum也是一个]但在mysql DB中保存为整数。
这不是任何值的回归。 我试过了
puts "SELECT COUNT(*) FROM tbl_ticket WHERE aktiv='1' AND erstellt='1' AND ablaufdatum<'$systemTime'"
和显示的查询,如果输入到phpMyAdmin控制台,可以正常工作并返回值。
Integer格式是否可能导致此问题? 或者我必须以不同方式格式化当前时间?
提前致谢
答案 0 :(得分:1)
我对mysql不熟悉(我更多地使用sqlite)但是我检查了manuals并且看起来命令::mysql::query
在使用大括号时不进行变量替换,所以请尝试使用以下代码:
set systemTime [clock seconds]
set queryanzahlalteuser [::mysql::query $db "SELECT COUNT(*) FROM tbl_ticket WHERE aktiv='1' AND erstellt='1' AND ablaufdatum<'$systemTime'"]
# ^ ^
使用双引号应该可以正常工作。