Javascript 按日期部分过滤MySql中的时间戳
在MySql数据库中,我有一个类型为Javascript 按日期部分过滤MySql中的时间戳,javascript,mysql,node.js,Javascript,Mysql,Node.js,在MySql数据库中,我有一个类型为timestamp的字段。在UI上,我有一个日期选择器,我希望能够只按日期过滤数据库中的数据,也就是说,不需要时间。现在我这样做: #nodejs server var dt = new Date("my date in str").toISOString().slice(0, 19).replace("T", " "); var sql = "select ..... where date(column_date1) = date('$dt')"..
timestamp
的字段。在UI上,我有一个日期选择器,我希望能够只按日期过滤数据库中的数据,也就是说,不需要时间。现在我这样做:
#nodejs server
var dt = new Date("my date in str").toISOString().slice(0, 19).replace("T", " ");
var sql = "select .....
where date(column_date1) = date('$dt')"......
结果是错误的。我的代码有错误吗?或者,可能是由于时区的原因?请尝试以下方法:
var sql = "SELECT * FROM YOUR_TABLE WHERE DATE(column_date1) = STR_TO_DATE( '"+dt+"', \"%Y-%m-%d\" )";
首先,
sql
变量中的dt
不会被计算。您发送的是“$dt”
字符串,而不是它的值。尝试类似于date(“+dt+”)
。不能保证MySQL语法,也不能保证dt
的值是预期值。@mr wildcard,已经计算过了。我在您的sql
变量中看到了一个简单的字符串,而不是字符串+dt
的值的串联。@mr wildcard,这不重要。是的,它有。请参阅@1000111的答案+这篇关于如何在MySQL中使用javascript日期的帖子:他在Node.js脚本中构建查询,而不是原生查询。抱歉,我误解了!可能不好@通配符先生