如何在Doobie(Postgres)中读取/写入时间戳

列夫·杰尼索夫(Lev Denisov)

如何在Doobie中读取/写入时间戳?

我有一个包含时间戳字段的记录类。当我尝试将其写入数据库或使用doobie读取它时,出现错误Cannot find or construct a Read instance for type

case class ExampleRecord(data: String, created_at: Timestamp)

val create = sql"create table if not exists example_ts (data TEXT NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP)".update.run
val insert = Update[ExampleRecord]("insert into example_ts (data, created_at) values (?, ?)")
  .updateMany(List(
    ExampleRecord("one", Timestamp.valueOf(LocalDateTime.now())),
    ExampleRecord("two", Timestamp.valueOf(LocalDateTime.now()))
  ))
val select = sql"select data, created_at from example_ts".query[ExampleRecord].stream

val app = for {
  _ <- create.transact(xa).compile.drain
  _ <- insert.transact(xa).compile.drain
  _ <- select.transact(xa).compile.drain
} yield ()

app.unsafeRunSync()
列夫·杰尼索夫(Lev Denisov)

您需要导入doobie.implicits.javasql._doobie.implicits.javatime._ 发布注释这是使用doobie的完整应用示例读写时间戳。

// sbt
// "org.tpolecat" %% "doobie-core"      % "0.8.8",
// "org.tpolecat" %% "doobie-postgres"  % "0.8.8"


import java.sql.Timestamp
import java.time.LocalDateTime

import doobie._
import doobie.implicits._
import doobie.implicits.javasql._
import doobie.postgres._
import doobie.postgres.implicits._
import doobie.postgres.pgisimplicits._
import cats._
import cats.implicits._
import cats.effect._
import cats.effect.implicits._

case class ExampleRecord(data: String, created_at: Timestamp)

object Example extends IOApp {
  override def run(args: List[String]): IO[ExitCode] = {
    val xa = Transactor.fromDriverManager[IO](
      "org.postgresql.Driver",     // driver classname
      "jdbc:postgresql:example_db",     // connect URL (driver-specific)
      "postgres",                  // user
      ""                          // password
    )

    val drop = sql"drop table if exists example_ts".update.run
    val create =
      sql"create table if not exists example_ts (data TEXT NOT NULL, created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP)".update.run
    val insert = Update[ExampleRecord]("insert into example_ts (data, created_at) values (?, ?)")
      .updateMany(List(
        ExampleRecord("one", Timestamp.valueOf(LocalDateTime.now())),
        ExampleRecord("two", Timestamp.valueOf(LocalDateTime.now()))
      ))

    val setup = for {
      _ <- drop.transact(xa)
      _ <- create.transact(xa)
      _ <- insert.transact(xa)
    } yield ()

    val select =
      sql"select data, created_at from example_ts".query[ExampleRecord].stream.transact(xa)

    val output = select.evalTap { record =>
      IO(println(record))
    }.compile.drain

    for {
      _ <- setup
      _ <- output
    } yield ExitCode.Success
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Hive表中插入时间戳?

来自分类Dev

如何在Hive表中插入时间戳?

来自分类Dev

如何在目录中读取文件时间戳

来自分类Dev

如何在数据库中插入时间戳?

来自分类Dev

Python如何在MongoDB的ISODate类型中插入时间戳值?

来自分类Dev

如何在 SQL-Server 的表中管理自动插入时间戳值?

来自分类Dev

如何在laravel 4.1上植入时间戳?

来自分类Dev

如何在Postgres中的时间戳中添加间隔小时,不包括周末时间

来自分类Dev

如何在Postgresql中舍入时间?

来自分类Dev

如何在熊猫数据框中按每天的时间戳分组并将其写入csv?

来自分类Dev

查找带有日期的行,固定列中的活动单元格,并写入时间戳

来自分类Dev

如何使用 JOOQ 将 Postgres“无穷大”插入时间戳字段?

来自分类Dev

Postgres - 在从表中选择值时在 INSERT INTO 查询中插入时间戳?

来自分类Dev

为文件写入时间戳的更好方法

来自分类Dev

如何创建插入时间戳的选项?

来自分类Dev

如何在postgres中更新时间戳字段的一部分?

来自分类Dev

在MySQL中插入时间戳

来自分类Dev

在Oracle中插入时间戳

来自分类Dev

在HREF中插入时间戳

来自分类Dev

在文件中替换/插入时间戳

来自分类Dev

如何在Firebase中验证时间戳?

来自分类Dev

如何在js中验证时间戳

来自分类Dev

如何在Julia中写入和读取包含日期时间列的DataFrame

来自分类Dev

NetCDF文件中的写入时间

来自分类Dev

如何从Postgres中的时间戳减去存储在列中的数值?

来自分类Dev

如何在Fortran中读取/写入矩阵?

来自分类Dev

如何在范围内加入时间戳(范围不存在)

来自分类Dev

如何在PostgreSQL中将输入时间戳分组为访问者特定的“会话”?

来自分类Dev

如何在EF中使用代码First插入时间戳字段

Related 相关文章

  1. 1

    如何在Hive表中插入时间戳?

  2. 2

    如何在Hive表中插入时间戳?

  3. 3

    如何在目录中读取文件时间戳

  4. 4

    如何在数据库中插入时间戳?

  5. 5

    Python如何在MongoDB的ISODate类型中插入时间戳值?

  6. 6

    如何在 SQL-Server 的表中管理自动插入时间戳值?

  7. 7

    如何在laravel 4.1上植入时间戳?

  8. 8

    如何在Postgres中的时间戳中添加间隔小时,不包括周末时间

  9. 9

    如何在Postgresql中舍入时间?

  10. 10

    如何在熊猫数据框中按每天的时间戳分组并将其写入csv?

  11. 11

    查找带有日期的行,固定列中的活动单元格,并写入时间戳

  12. 12

    如何使用 JOOQ 将 Postgres“无穷大”插入时间戳字段?

  13. 13

    Postgres - 在从表中选择值时在 INSERT INTO 查询中插入时间戳?

  14. 14

    为文件写入时间戳的更好方法

  15. 15

    如何创建插入时间戳的选项?

  16. 16

    如何在postgres中更新时间戳字段的一部分?

  17. 17

    在MySQL中插入时间戳

  18. 18

    在Oracle中插入时间戳

  19. 19

    在HREF中插入时间戳

  20. 20

    在文件中替换/插入时间戳

  21. 21

    如何在Firebase中验证时间戳?

  22. 22

    如何在js中验证时间戳

  23. 23

    如何在Julia中写入和读取包含日期时间列的DataFrame

  24. 24

    NetCDF文件中的写入时间

  25. 25

    如何从Postgres中的时间戳减去存储在列中的数值?

  26. 26

    如何在Fortran中读取/写入矩阵?

  27. 27

    如何在范围内加入时间戳(范围不存在)

  28. 28

    如何在PostgreSQL中将输入时间戳分组为访问者特定的“会话”?

  29. 29

    如何在EF中使用代码First插入时间戳字段

热门标签

归档