选择过去 24 小时内的“日期”行
Selecting rows of `date` in the last 24 hours
尝试获取基于时间范围的行,例如过去 24 小时、过去 7 天、过去 30 天、过去 1 年等
最后一天是这样计算的
let lastDay = Date.now() - (24 * 60 * 60 * 1000)
lastDay = new Date(lastDay).toISOString()
在 where
中使用 .findMany
等时,AND
会像这样吗?
AND: {
date: {
gte: lastDay
}
}
所以找到大于或等于最近 24 小时的日期行?
您可以在 where 子句中传递一个对象列表,这与使用 AND
过滤条件相同。
对于基于日期的过滤,您可以使用 Filter Operators,例如 gt/gte/lt/lte。
鉴于此架构:
model User {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
}
可以直接传入一个ISO字符串进行比较:
let lastDay = Date.now() - (24 * 60 * 60 * 1000);
lastDay = new Date(lastDay).toISOString();
let id = 1;
await prisma.user.findMany({
where: {
AND: [
{
id: id,
},
{
createdAt: {
gte: lastDay,
},
},
],
},
});
这是使用 AND
过滤器的参考。
尝试获取基于时间范围的行,例如过去 24 小时、过去 7 天、过去 30 天、过去 1 年等
最后一天是这样计算的
let lastDay = Date.now() - (24 * 60 * 60 * 1000)
lastDay = new Date(lastDay).toISOString()
在 where
中使用 .findMany
等时,AND
会像这样吗?
AND: {
date: {
gte: lastDay
}
}
所以找到大于或等于最近 24 小时的日期行?
您可以在 where 子句中传递一个对象列表,这与使用 AND
过滤条件相同。
对于基于日期的过滤,您可以使用 Filter Operators,例如 gt/gte/lt/lte。
鉴于此架构:
model User {
id Int @id @default(autoincrement())
createdAt DateTime @default(now())
}
可以直接传入一个ISO字符串进行比较:
let lastDay = Date.now() - (24 * 60 * 60 * 1000);
lastDay = new Date(lastDay).toISOString();
let id = 1;
await prisma.user.findMany({
where: {
AND: [
{
id: id,
},
{
createdAt: {
gte: lastDay,
},
},
],
},
});
这是使用 AND
过滤器的参考。