【问题标题】:Convert Postgresql timestamp to String in RUST将 Postgresql 时间戳转换为 RUST 中的字符串
【发布时间】:2020-09-15 07:49:51
【问题描述】:

当我尝试从数据库中检索数据时出现此错误:线程 'main' 在 'error retrieving column 2: error deserializing column 2: cannot co 在 Rust 类型 alloc::string::String 和 Postgres 类型 timestamp' 之间转换

Db structure : CREATE TABLE IF NOT EXISTS table_(
            id SERIAL PRIMARY KEY,
            data VARCHAR NOT NULL,
            date_saved TIMESTAMP
        )

------------------------------------------

struct MyType{
    local_id: i32,
    data: String,
    date_saved: String
}

let records = client.query("SELECT id,data,date_saved FROM table_",&[])?;
    let mut the_records : Vec<MyType> = vec![];
    for record in records{
        let saved_data = MyType {
            local_id: record.get(0),
            data: record.get(1),
            date_saved: record.get(2),
        };
        println!("{:?}",saved_data.data);
        the_records.push(saved_data);
    }

感谢您的帮助。

【问题讨论】:

    标签: postgresql rust


    【解决方案1】:

    根据https://docs.rs/postgres/0.17.5/postgres/types/trait.FromSql.html,我发现Postgres Timestamp和String之间没有可能的转换,但我们需要使用std::time::SystemTime。

    所以 MyType 将是:

    struct MyType{
        local_id: i32,
        data: String,
        date_saved: std::time::SystemTime
    }
    

    我可以从那里操纵时间。

    谢谢。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-22
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      • 1970-01-01
      • 2016-11-30
      相关资源
      最近更新 更多