Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/434.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按日期部分过滤MySql中的时间戳_Javascript_Mysql_Node.js - Fatal编程技术网

Javascript 按日期部分过滤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')"..

在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')"......
结果是错误的。我的代码有错误吗?或者,可能是由于时区的原因?

请尝试以下方法:

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脚本中构建查询,而不是原生查询。抱歉,我误解了!可能不好@通配符先生