如何在sqlxrust中定义日期时间字段

chhkpiq4  于 2023-04-06  发布在  其他
关注(0)|答案(2)|浏览(169)

我有一个结构如下?

pub struct Instrument {
  pub id:i32,
  pub expiry_on: <this should be a date field>
}

我应该给予expiry_on的类型什么?我想使用sqlx::query_as!()内部的结构体从postgres中获取记录?
expiry_ontimestampzPostgres字段。

vbopmzt1

vbopmzt11#

假设postgres中的expiry_on字段是timestamptz:根据您使用的时间库,您可能希望将chrono功能或time功能添加到sqlx。您可以在Cargo.toml中这样做:

[dependencies]
sqlx = { version = "*", features = [ "chrono" ] }

sqlx = { version = "*", features = [ "time" ] }

而不是

sqlx = "*"

其中*是您使用的任何版本。
然后在Instrument中更改以下内容(假设chrono):

pub struct Instrument {
    pub id: i32,
    pub expiry_on: chrono::DateTime<chrono::Utc>,
}
kadbb459

kadbb4592#

要完成answer by izik1,我们可以启用chrono的serde支持特性,如下所示:

chrono = { version = "0.4.24", features = ["serde"] }

相关问题