在NodeJ中使用日期的MySql查询

时间:2015-12-16 16:03:37

标签: mysql node.js date

我在MySQL数据库中有一个表,其中包含他们的出生率。 例如'1991-11-21'

我有两个值,一个是最小年龄(如22),另一个是最大年龄(如33)。 我想创建一个查询,让我获得最小年龄值和最大年龄之间的所有记录。

我正在使用NodeJs。 任何想法?

2 个答案:

答案 0 :(得分:1)

一种解决方案是在MySQL中完成所有工作并将变量注入MySQL语句

要做到这一点,您需要结合这些答案

1)获取x年前的日期

Selecting all records from one year ago till now

2)选择日期范围

之间的结果

Select mysql query between date?

你应该得到这样的查询:

select * 
from *table_name* 
where *datetime_column* 
between DATE_SUB(NOW(),INTERVAL 22 YEAR)
and DATE_SUB(NOW(),INTERVAL 33 YEAR);

注意:你可能需要在第二个日期(33 + 1)添加一年才能获得33岁的所有人的全部范围(直到你34岁的那一天你才33岁)< / p>

或者,如果您愿意,可以在JS中计算您的日期,但根据您的操作方式,您可能需要格式化日期,以便它们可以在您的查询中使用

答案 1 :(得分:-1)

试试这个:

SELECT age, birthday FROM tablename WHERE age > 22 AND age < 33

我采取了错误的方式:

我认为这是正确的:

SELECT *, TIMESTAMPDIFF(YEAR,birthday,CURDATE()) as age FROM student  WHERE TIMESTAMPDIFF(YEAR,created,CURDATE()) > 22 AND  TIMESTAMPDIFF(YEAR,birthday,CURDATE()) < 33