最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

大于或小于日期不会在续集中显示任何记录,但可用于heidisql

IT培训 admin 15浏览 0评论

大于或小于日期不会在续集中显示任何记录,但可用于heidisql

真的很奇怪,我无法调试该问题。我也不知道是什么原因引起的。我有一个如下查询:

const sequelize = require('sequelize')
const Op = sequelize.Op
const TODAY_START = new Date().setHours(0, 0, 0, 0)
const NOW = new Date()

    const  data = await AssignedJob.findAll({
        where: {
            created_on: {
                [Op.gt]: TODAY_START,
                [Op.lt]: NOW
            }
        }
    })

它生成如下查询。

SELECT `id`, `emp_id`, `zone_id`, `job_id`, `status`, `commission`, `rating`,
`created_by`, `updated_by`, `created_on`, `updated_on` 
FROM `assigned_jobs` AS `AssignedJob` 
WHERE (`AssignedJob`.`created_on` > '2020-03-24 00:00:00' AND `AssignedJob`.`created_on` < '2020-03-24 17:18:15');

但是data只是[]空数组。我也尝试使用[Op.between]: [START_DATE, NOW],但仍然没有任何记录。我将相同的查询复制到heidsql并运行它,结果在那里。这里发生了什么事?有人可以解释吗?序列中created_onupdated_on的数据类型为DATE,在表中为TIMESTAMP

回答如下:

使用moment.js在'YYYY-MM-DD'中设置日期格式>

const sequelize = require('sequelize')
const moment = require('moment');
const Op = sequelize.Op

function getDateWithoutTime(date) => moment(date).format('YYYY-MM-DD');

const TODAY_START = getDateWithoutTime(new Date());
const NOW = new Date()

const date = new Date().setHours(0, 0, 0, 0)

console.log(date); // return seconds after 1970 

const date1 = new Date();
date1.setHours(0, 0, 0, 0);

console.log(date1); // return date

大于或小于日期不会在续集中显示任何记录,但可用于heidisql

真的很奇怪,我无法调试该问题。我也不知道是什么原因引起的。我有一个如下查询:

const sequelize = require('sequelize')
const Op = sequelize.Op
const TODAY_START = new Date().setHours(0, 0, 0, 0)
const NOW = new Date()

    const  data = await AssignedJob.findAll({
        where: {
            created_on: {
                [Op.gt]: TODAY_START,
                [Op.lt]: NOW
            }
        }
    })

它生成如下查询。

SELECT `id`, `emp_id`, `zone_id`, `job_id`, `status`, `commission`, `rating`,
`created_by`, `updated_by`, `created_on`, `updated_on` 
FROM `assigned_jobs` AS `AssignedJob` 
WHERE (`AssignedJob`.`created_on` > '2020-03-24 00:00:00' AND `AssignedJob`.`created_on` < '2020-03-24 17:18:15');

但是data只是[]空数组。我也尝试使用[Op.between]: [START_DATE, NOW],但仍然没有任何记录。我将相同的查询复制到heidsql并运行它,结果在那里。这里发生了什么事?有人可以解释吗?序列中created_onupdated_on的数据类型为DATE,在表中为TIMESTAMP

回答如下:

使用moment.js在'YYYY-MM-DD'中设置日期格式>

const sequelize = require('sequelize')
const moment = require('moment');
const Op = sequelize.Op

function getDateWithoutTime(date) => moment(date).format('YYYY-MM-DD');

const TODAY_START = getDateWithoutTime(new Date());
const NOW = new Date()

const date = new Date().setHours(0, 0, 0, 0)

console.log(date); // return seconds after 1970 

const date1 = new Date();
date1.setHours(0, 0, 0, 0);

console.log(date1); // return date
发布评论

评论列表 (0)

  1. 暂无评论