Javascript 在Sequelize中将varchar列转换为日期

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

我需要对一个模型执行一个查询,该模型的datetime列以字符形式保存,这里是我的查询

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数据类型在我尝试在那里做任何事情之前是这样的。