我粘贴你的代码中Closure Compiler和所使用的这给了没有任何错误,所以语法是正确的。生成的代码是:
document.f.SQL.value = "(" + document.f.SQL.value + a[i] + " >= '" + document.f[a[i] + "_A"].value + "' AND " + a[i] + " <= '" + document.f[a[i] + "_B"].value + ") or DATEADD" + "(" + "dd, 0, DATEDIFF" + "(" + "dd, 0," + a[i] + ")) = '" + document.f[a[i]].value + "'";
我用这个选项:
尽量避免这种复杂的线条。利用变量。用下面的方法可以得到相同的结果:
var old = document.f.SQL.value + a[i];
var sql_a = document.f[ a[i] + "_A" ].value;
var sql_b = document.f[ a[i] + "_B" ].value;
var whatever = document.f[ a[i] ].value;
// (old) >= 'sql_a' AND
var sql = "(" + old + ") >= '" + sql_a + "' AND ";
// A <= 'sql_b')
sql += a[i] + " <= '" + sql_b + "') "
// or DATEADD(dd, 0, DATEDIFF(dd, 0, A)) = 'whatever'
sql += "or DATEADD(dd, 0, DATEDIFF(dd, 0, " + a[i] + ")) = '" + whatever + "';
document.f.SQL.value = sql;
问题是,试着将字符串分成较小的部分。我没有在上面的小部分分割查询,这取决于你。
没有语法错误,但没有办法知道代码是否工作。你没有告诉我们你在做什么。 – 0x499602D2
如果你试图描述你想要你的代码做什么,它会有所帮助。 –
这是我尝试在javascript中获取字符串的查询,并且粘贴的代码属于where子句SELECT CH_INSERT_DATE FROM CMS_HITLIST WHERE(CH_INSERT_DATE> ='2011-09-22'AND CH_INSERT_DATE <='2011-09-22')或DATEADD(dd,0,DATEDIFF(dd,0,CH_INSERT_DATE))='2011-09-22' –