首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Prisma ORM以字符串形式检索日期(仅限)列,或映射到不带时间的字符串

使用Prisma ORM以字符串形式检索日期(仅限)列,或映射到不带时间的字符串
EN

Stack Overflow用户
提问于 2021-02-09 05:04:26
回答 1查看 1.3K关注 0票数 3

我使用的是Prisma2 (prisma @prisma/client)。

在我的底层postgres db中,我有一个类型为date的列,即只有日期而没有时间。

Prisma为此列返回一个Javascript Date对象(https://www.prisma.io/docs/concepts/components/preview-features/native-types/native-types-mappings#datetime),该对象也携带时间信息。

序列化之后,我得到了一个完整的ISO日期和时间字符串。但是,我只想返回日期部分(时间部分始终是00:00:00)。

目前我这样做了:

代码语言:javascript
运行
复制
return await prisma.entity.findMany().map(e => ({ ...e, date: e.date.toISOString().substring(0,10) }))

我想摆脱手动映射,因为我必须为每个查询重复它,并且对于嵌套查询,映射变得更加复杂。

Prisma是否支持添加到模型(并自动执行)的某种类型的转换(例如,使用类转换器)?我在文件里什么也没找到。或者,我可以教Prisma将该列作为字符串而不是Date对象返回吗?

EN

回答 1

Stack Overflow用户

发布于 2021-02-09 14:12:53

Prisma客户端正在返回JavaScript Date objects by design,遗憾的是,这无法在Prisma客户端API中进行配置。

作为一种变通办法,您可以考虑编写一个middleware函数来自动将Date对象转换为字符串,这样您就不需要在每次使用Date时都在应用程序中手动执行此操作。

如果你想看到Prisma原生支持这一点,请随时与你的用例一起使用open a feature request,这样我们的团队就可以研究这一点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66109340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档