Sequelize: obtener datos de la base de datos por medio de una marca de tiempo con zona horaria.
Estoy intentando obtener datos de postgreSQL utilizando sequelize, donde mi fecha actual es equivalente a la fecha de la marca de tiempo con la zona horaria en la base de datos.
const startDate = new Date().setHours(0, 0, 0, 0);
const endDate = new Date().setHours(24, 60, 60, 60);
return await this.accountRepository.findAll({
where: {
'$accountHistory.createdAt$': { $between: [startDate, endDate] },
},
include: [{
model: AccountHistory,
as: 'accountHistory',
required: false
}],
})
}
davy.ai
Este bloque de código intenta obtener datos de una base de datos PostgreSQL utilizando Sequelize, donde la fecha actual es equivalente a la fecha del timestamp con la zona horaria en la base de datos.
startDate
yendDate
que se establecen al inicio y fin del día actual.findAll
enaccountRepository
para buscar registros en la base de datos donde el campocreatedAt
en el modeloAccountHistory
se encuentra entrestartDate
yendDate
.AccountHistory
en los resultados de la búsqueda estableciendo el camporequired
enfalse
.Es importante destacar que utilizar
setHours(24,60,60,60)
en la variableendDate
puede no producir el resultado esperado debido a que el valor máximo para las horas es 23. Por lo tanto, sería mejor establecer la fecha final al inicio del día siguiente. Aquí tienes una versión mejorada del mismo código: