首先,我是javascript的新手,因此如果我的问题没有任何意义,请原谅我。
我想知道这个日期到底代表什么:2022-02-28T00:00:00.000Z
在这里,可以理解为年份是 2022 年,月份是 2 月,日期是 28 日。之后,它将小时显示为 00,分钟显示为 00,秒显示为 00,毫秒显示为 000。 那么,会是28日午夜12点,2月27日午夜12点还是别的什么?
我问这个问题是因为我必须根据日期范围过滤一些日期。假设,我想要 2022 年 2 月 11 日至 20 日的数据,那么我应该将 toDate 作为 2022-02-20T00:00:00.000Z 还是 2022-02-20T23:59.59.999Z?
那么,它会是 28 日午夜 12 点、2 月 27 日午夜 12 点还是 别的?
2022-02-28T00:00:00.000Z
将被视为28日午夜。
让我们通过一个例子来看一下:
//Date: 30th
var endDate = Date.parse("2022-07-30T00:00:00.000Z");
//Date: 29th
var currentDate = Date.parse("2022-07-29T11:59:59.999Z");
//Return true
console.log(endDate > currentDate);
结束日期被视为大于当前日期。
//Date 30th
var endDate = Date.parse("2022-07-30T00:00:00.000Z");
//Date: 30th, Time:1/1000th of a second
var currentDate = Date.parse("2022-07-30T00:00:00.001Z");
//Return false
console.log(endDate > currentDate);
当当前日期时间大于结束日期 .001Z 时。当前日期被视为大于结束日期。因此是错误的。
来回答你的问题,
假设,我想要 2022 年 2 月 11 日至 20 日的数据,那么我应该 将日期作为 2022-02-20T00:00:00.000Z 或 2022-02-20T23:59.59.999Z ??
如果您还想考虑在2022-02-20T00:00:00.000Z
和2022-02-20T23:59.59.999Z
.也就是说,在 2022 年 2 月 20 日这一天。您需要将条件设置为date <= 2022-02-20T23:59.59.999Z
或date < 2022-02-21T00:00.00.000Z
或
如果要考虑在2022-02-19T23:59.59.999Z
之前创建的数据。也就是说,直到 2022 年 2 月 19 日结束。您可以将条件设置为date <= 2022-02-19T23:59.59.999Z
或date < 2022-02-20T00:00:00.000Z
最后的零意味着您的数据类型是日期列是当前时间戳,它将自动插入带有小时分钟和秒的日期。 如果您只想获取日期,则查询将如下所示: 从table_name中选择 * 日期(column_name
) 作为shor_date
;