lma*_*nco 9 mysql orm node.js sails.js waterline
我刚开始使用Sails.js及其ORM,Waterline,并且非常喜欢它,但我不确定如何使用查询修饰符来表示日期.我正在使用sails-mysql.具体来说,我试图获取具有两个特定日期之间的日期时间字段的行.我试过这样做:
MyModel.find()
.where({ datetime_field: { '>=': startDate } })
.where({ datetime_field: { '<=': endDate } })
.done(function(err, objects){
// ...
});
Run Code Online (Sandbox Code Playgroud)
startDate并且endDate是两个Date对象.我也尝试将它们转换为字符串toString().在这两种情况下,我从数据库中获取每一行而不是两个日期之间的行.有没有办法做到这一点,或者这个功能还不是Waterline或sails-mysql的一部分?
小智 10
在同一条船上(没有双关语意)但使用sails-mongo.
如果你有正确的日期格式(正如Jeremie提到的那样).我个人moment(startDate).toISOString()在客户端存储UTC日期,您可以moment(startDate)在当地日期和时间工作.
查看延迟查询的Waterline源(请参阅where方法),它应用datetime_field它发现的最新标准有效.
在浏览代码,搜索和小组后,我找不到任何有用的东西.我当然希望我错过了一些明显的东西,但是现在我的建议是将结果锚定在你的上面startDate,然后限制上限,
例如
.where({ datetime_field: { '>=': startDate } })
.limit(100)
Run Code Online (Sandbox Code Playgroud)
您需要将日期格式化为YYYY-MM-DD格式的字符串.如果您需要格式化日期的帮助,moment.js有很多很酷的功能.
形成你的约会看起来像
var formatedStartDate = moment(startDate).format('YYYY-MM-DD');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8593 次 |
| 最近记录: |