sql >> Databáze >  >> RDS >> PostgreSQL

Jak mohu číst časové razítko s hodnotou časového pásma (timestamptz) z PostgreSQL v Rustu?

Jakmile budete vědět, jaké funkce jsou k dispozici , je poměrně jasné, že musíte použít with-chrono-0_4 funkce.

use chrono::{DateTime, Utc}; // 0.4.10
use postgres::{Client, Error, NoTls}; // 0.17.0, features = ["with-chrono-0_4"]

pub fn main() -> Result<(), Error> {
    let mut client = Client::connect("host=localhost user=stack-overflow", NoTls)?;

    client.simple_query(
        r#"
        CREATE TABLE mytable (
            name        text NOT NULL,
            timestamp   timestamptz NOT NULL
        )"#,
    )?;

    client.execute("INSERT INTO mytable VALUES ('bob', now());", &[])?;

    for row in client.query("SELECT * FROM mytable", &[])? {
        let name: &str = row.get(0);
        let timestamp: DateTime<Utc> = row.get(1);
        dbg!(name, timestamp);
    }

    Ok(())
}
[src/main.rs:20] name = "bob"
[src/main.rs:20] timestamp = 2020-01-16T01:21:58.755804Z


  1. CHAR() nebo VARCHAR() jako primární klíč v tabulce ISAM MySQL?

  2. Plánovač událostí MySQL každý den v konkrétní čas

  3. Převeďte text na číslo v dotazu MySQL

  4. MySQL koncepty:relace vs připojení