2016-03-08 207 views
-1

在MySql数据库我有一个timestamp类型的字段。在用户界面上我有一个日期选择器,我希望能够仅通过日期过滤来自db的数据,也就是说,没有时间。现在我这样做:从MySql的日期部分过滤时间戳

#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')"...... 

并得到了错误的结果。我的代码中是否有错误?或者,也许,这是由于时区?

+0

首先,'dt'在'sql'变量没有评估。你发送的是''dt''字符串,而不是它的值。尝试像'date(“+ dt +”)''。不能保证MySQL语法,也不能'dt'的值是预期的。 –

+0

@ mr-wildcard,它被评估。 – Mario

+0

我在'sql'变量中看到一个简单的字符串,而不是字符串+'dt'值的串联。 –

回答

0

试试这个请:

var sql = "SELECT * FROM YOUR_TABLE WHERE DATE(column_date1) = STR_TO_DATE('"+dt+"', \"%Y-%m-%d\")"; 
+0

他在Node.js脚本中构建查询,而不是本机查询。 –

+0

对不起,我误解了!可能不好!@ mr-wildcard – 1000111