在VARCHAR(Mysql和node.js)中获取日期之间的数据



我已经搜索了已经提出的问题,但我无法解决。我想做的是获取两个日期之间保存的所有数据(以及是否包含同一封电子邮件(。日期保存为字符串(VARCHAR(,格式如下:15/10/2019。我知道使用VARCHAR作为日期数据库是不好的做法,但现在我必须使用它。

我试过以下几种,但都不起作用。对于第一个,我有时会得到一些数据,但这不是正确的日期。可能是因为字符串格式;

let sql = `SELECT reps FROM reps WHERE email = ? AND date >= ? and date <= ? ORDER BY date`;

为了解决这个问题,我尝试使用STR_To_DATE,但这只给了我一个空数组:

let sql = `SELECT reps FROM reps WHERE email = ? AND STR_TO_DATE(date, '%d/%/m/%Y') BETWEEN STR_TO_DATE(?, '%d/%/m/%Y') AND STR_TO_DATE(?, '%d/%/m/%Y')`;

请注意,问号与node.js一起使用,代表这个(第一个问号是user,下一个是date1,最后一个是date 2(:

connection.query(sql, [user, date1, date2], (error, result) => { ...

知道我在这里做错了什么吗?

如果你试图删除多余的斜杠,我认为'%d/%/m/%Y'中有一个拼写错误。

试用'%d/%m/%Y'

希望能有所帮助。

最新更新