在Prisma中能否创建仅存储日期(不含时间)的字段?
在Prisma中创建仅存储日期的字段
当然可以!在Prisma里完全支持只存储日期(不含时间部分)的字段,我来给你一步步说明怎么调整你的数据模型,达到你想要的效果:
核心修改:用Date类型替代DateTime
Prisma提供了专门的Date类型,它会映射到数据库中的纯日期类型(比如PostgreSQL的date、MySQL的date),只会存储年月日,不会包含时间戳信息。你只需要把模型里的DateTime改成Date就行。
修改后的完整数据模型:
model modelName { id Int @id @default(autoincrement()) createdAt Date @default(now()) // 替换DateTime为Date lastNumber Int }
关键细节说明
- 默认值自动适配:
@default(now())在Date类型下会自动生成当前的日期(不含时间),完全符合你期望的格式。 - 数据库记录效果:修改后生成的数据库记录里,
createdAt字段就会是2022-04-19这样的纯日期格式,和你想要的2 2022-04-19 45记录结构一致。 - 查询与操作:后续查询时,你可以直接用纯日期字符串进行过滤,比如:
const result = await prisma.modelName.findMany({ where: { createdAt: '2022-04-19' } }); - 迁移注意事项:如果你的模型已经同步过数据库,修改类型后需要运行
prisma migrate dev来更新数据库表结构,确保字段类型切换生效。
内容的提问来源于stack exchange,提问作者mxcdh
相关产品推荐
相关产品推荐

