程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用 rusqlite 在 sqlite 数据库中插入和获取日期?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用 rusqlite 在 SQLite 数据库中插入和获取日期??

开发过程中遇到如何使用 rusqlite 在 SQLite 数据库中插入和获取日期?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用 rusqlite 在 SQLite 数据库中插入和获取日期?的解决方法建议,希望对你解决如何使用 rusqlite 在 SQLite 数据库中插入和获取日期?有所启发或帮助;

我有一个带有 NaiveDate 字段的结构,我想将此字段插入到表中。这是我的全部代码

use chrono::naive::NaiveDate; 
use rusqlite::{params,Connection,Result};

#[derive(DeBUG)]
struct Person {
    ID: i32,name: String,date: NaiveDate,}

fn main()->Result<()>{
    let date_str = "2020-04-12";
    let naive_date = NaiveDate::parse_from_str(date_str,"%Y-%m-%d").unwrap();

    let me = Person {
        ID: 0,name: "Steven".to_String(),date: naive_date,};
    println!("{:?}",mE);
    
    let conn = Connection::open_in_memory()?;
    
        
    conn.execute(
        "create table person (
                  ID              INTEGER PRIMARY KEY,name            TEXT NOT NulL,date            TEXT
                  )",[],)?;
    
    conn.execute(
    "INSERT INTO person (name,datE) VALUES (?1,?2)",params![me.name,me.date],)?;
    
    let mut stmt = conn.prepare("SELECT ID,name,date FROM person")?;
    let person_iter = stmt.query_map([],|row| {
        Ok(Person {
            ID: row.get(0)?,name: row.get@R_673_11269@?,date: row.get(2)?,})
    })?;

    for person in person_iter {
        println!("Found person {:?}",person.unwrap());
    }
    
    Ok(())
}

但它给出了这两个错误

|   the Trait `Fromsql` is not implemented for `NaiveDate`
|   the Trait `Tosql` is not implemented for `NaiveDate`

cargo.toml

chrono = "0.4.19"
rusqlite = "0.25.0"

解决方法

您必须使用额外的 chrono 功能进行编译,才能为 chrono 类型实现 FromSqlToSql 特征。

将 Cargo.toml 中的声明更改为

chrono = "0.4.19"
rusqlite = { version = "0.25.0",features = ["chrono"] }

大佬总结

以上是大佬教程为你收集整理的如何使用 rusqlite 在 sqlite 数据库中插入和获取日期?全部内容,希望文章能够帮你解决如何使用 rusqlite 在 sqlite 数据库中插入和获取日期?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。