如何使用 JSON 值作为日期
How to use a JSON value as a Date
我有一个使用 Slick 与 PostgreSQL 连接的应用程序。
由于模型使用包含日期的 JSON 列,我想弄清楚如何按该日期进行过滤。
这是一个类似的数据库定义:
class EventsDAO(tag: Tag) extends Table[Event](tag, "events") {
def info = column[JsValue]("info")
...
}
case class Event(info: JsValue)
这是我想翻译成 Slick 的查询:
SELECT *
FROM events
WHERE Date(f.home_description ->> 'creationDate') < Date('2015-09-28')
为什么不直接使用 Postgres 原生日期类型?
如果是无法更改的现有数据库,您可以
在你的应用层做过滤器(这应该适用于小数据集)
使用 slick plain-sql
中的普通 sql 查询
可以写一个映射函数把JSON转换成Date类型,勾选User defined feature
看看 slick-pg 如果你还没有,它提供了对 JSON 和日期类型的支持。
我有一个使用 Slick 与 PostgreSQL 连接的应用程序。
由于模型使用包含日期的 JSON 列,我想弄清楚如何按该日期进行过滤。
这是一个类似的数据库定义:
class EventsDAO(tag: Tag) extends Table[Event](tag, "events") {
def info = column[JsValue]("info")
...
}
case class Event(info: JsValue)
这是我想翻译成 Slick 的查询:
SELECT *
FROM events
WHERE Date(f.home_description ->> 'creationDate') < Date('2015-09-28')
为什么不直接使用 Postgres 原生日期类型?
如果是无法更改的现有数据库,您可以
在你的应用层做过滤器(这应该适用于小数据集)
使用 slick plain-sql
中的普通 sql 查询
可以写一个映射函数把JSON转换成Date类型,勾选User defined feature
看看 slick-pg 如果你还没有,它提供了对 JSON 和日期类型的支持。