Javascript 在Sequelize中将varchar列转换为日期
我需要对一个模型执行一个查询,该模型的datetime列以字符形式保存,这里是我的查询Javascript 在Sequelize中将varchar列转换为日期,javascript,node.js,postgresql,sequelize.js,Javascript,Node.js,Postgresql,Sequelize.js,我需要对一个模型执行一个查询,该模型的datetime列以字符形式保存,这里是我的查询 const _from = new Date(from).getTime(); Model.findAll({where: Sequelize.where(Sequelize.fn('datetime', Sequelize.col('start')), '>=', _from)}) 对于上述查询,这是响应:函数日期时间(字符变化)不存在 我还尝试了以下方法: const _from = new Da
const _from = new Date(from).getTime();
Model.findAll({where: Sequelize.where(Sequelize.fn('datetime', Sequelize.col('start')), '>=', _from)})
对于上述查询,这是响应:函数日期时间(字符变化)不存在
我还尝试了以下方法:
const _from = new Date(from);
Model.findAll({where: Sequelize.where(Sequelize.fn('date', Sequelize.col('start')), '>=', from)})
对于上述查询,这是响应:date/time字段值超出范围:1495828800000
这是表中列的屏幕截图,我在Nodejs中使用postgress和Sequelize:
请尝试以下代码:
对于sequelize>=4.12.0
const Op = Sequelize.Op;
const _from = new Date(from).getTime();
Model.findAll({where: { start : {[Op.gte]: _from}})
对于sequelize<4.12.0:
const _from = new Date(from).getTime();
Model.findAll({where: { start : {$gte: _from}})
出于好奇,为什么要将日期存储在
VARCHAR
?哪个版本使用Sequelize.Op?如果我尝试获取未定义的的无法读取属性'gte',因为Op
未定义,我使用的是版本3.23,日期的Varchar数据类型在我尝试在那里做任何事情之前是这样的。