选择过去 24 小时内的“日期”行

0ra*_*ndo 1 database reactjs prisma

尝试根据时间范围获取行,例如过去 24 小时、过去 7 天、过去 30 天、过去 1 年等。

最后一天是这样计算的

let lastDay = Date.now() - (24 * 60 * 60 * 1000)
lastDay = new Date(lastDay).toISOString()
Run Code Online (Sandbox Code Playgroud)

当使用.findMany等时,会whereAND这样的吗?

      AND: {
            date: {
              gte: lastDay
            }
          }
Run Code Online (Sandbox Code Playgroud)

那么找到大于或等于过去 24 小时的日期行吗?

Nur*_*ani 7

AND您可以在 where 子句中传递对象列表,这与使用过滤条件相同。

对于基于日期的过滤,您可以使用过滤器运算符,例如 gt/gte/lt/lte。

给定这个模式:

model User {
  id        Int      @id @default(autoincrement())
  createdAt DateTime @default(now())
}
Run Code Online (Sandbox Code Playgroud)

可以直接传入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,
          },
        },
      ],
    },
  });
Run Code Online (Sandbox Code Playgroud)

这是使用过滤器的参考AND