Sails JS - Waterline ORM - 只查询日期,不查询时间
Sails JS - Waterline ORM - Query Date only, not Time
只想查询 日期 有人遇到过这个吗?
示例代码:
////MODEL
module.exports = {
attributes: {
date: {
type: 'date',
required: true
}
}
};
////CONTROLLER
var today = moment().toISOString();
var queryObj = { date: today };
var newDay = { date: today };
Day.findOrCreate(queryObj, newDay).exec(function(err, day) {
console.log(day)
});
显然这会在每次刷新时创建一条新记录,因为 iso 字符串会随着时间的流逝而变化。
感谢您的帮助!
您可以查询包含今天所有时间的 范围 日期,而不是查询单个日期。首先,您需要实际为该范围创建值——我使用 Moment 完成了此操作,但可能有更好的方法:
var begin = moment(moment().format("YYYY-MM-DD")).toISOString();
var end = moment(moment().format("YYYY-MM-DD")).add(1, 'days').toISOString();
然后您可以使用查询运算符搜索范围:
var queryObj = {date: {'>=': begin, '<': end}};
Day.findOrCreate(queryObj, newDay).exec(function(err, day) {
console.log(day)
});
一如既往,注意时区问题!
只想查询 日期 有人遇到过这个吗?
示例代码:
////MODEL
module.exports = {
attributes: {
date: {
type: 'date',
required: true
}
}
};
////CONTROLLER
var today = moment().toISOString();
var queryObj = { date: today };
var newDay = { date: today };
Day.findOrCreate(queryObj, newDay).exec(function(err, day) {
console.log(day)
});
显然这会在每次刷新时创建一条新记录,因为 iso 字符串会随着时间的流逝而变化。
感谢您的帮助!
您可以查询包含今天所有时间的 范围 日期,而不是查询单个日期。首先,您需要实际为该范围创建值——我使用 Moment 完成了此操作,但可能有更好的方法:
var begin = moment(moment().format("YYYY-MM-DD")).toISOString();
var end = moment(moment().format("YYYY-MM-DD")).add(1, 'days').toISOString();
然后您可以使用查询运算符搜索范围:
var queryObj = {date: {'>=': begin, '<': end}};
Day.findOrCreate(queryObj, newDay).exec(function(err, day) {
console.log(day)
});
一如既往,注意时区问题!