mirror of
https://github.com/isar/rusqlite.git
synced 2024-11-23 09:09:19 +08:00
Merge pull request #305 from jgallagher/lgarczyn-master
Fixed loss of time information during string conversion
This commit is contained in:
commit
68dbcc3c39
@ -3,7 +3,7 @@ extern crate time;
|
|||||||
use Result;
|
use Result;
|
||||||
use types::{FromSql, FromSqlError, FromSqlResult, ToSql, ToSqlOutput, ValueRef};
|
use types::{FromSql, FromSqlError, FromSqlResult, ToSql, ToSqlOutput, ValueRef};
|
||||||
|
|
||||||
const SQLITE_DATETIME_FMT: &'static str = "%Y-%m-%d %H:%M:%S";
|
const SQLITE_DATETIME_FMT: &'static str = "%Y-%m-%d %H:%M:%S:%f %Z";
|
||||||
|
|
||||||
impl ToSql for time::Timespec {
|
impl ToSql for time::Timespec {
|
||||||
fn to_sql(&self) -> Result<ToSqlOutput> {
|
fn to_sql(&self) -> Result<ToSqlOutput> {
|
||||||
@ -42,15 +42,27 @@ mod test {
|
|||||||
fn test_timespec() {
|
fn test_timespec() {
|
||||||
let db = checked_memory_handle();
|
let db = checked_memory_handle();
|
||||||
|
|
||||||
let ts = time::Timespec {
|
let mut ts_vec = vec![];
|
||||||
sec: 10_000,
|
|
||||||
nsec: 0,
|
ts_vec.push(time::Timespec::new(10_000, 0));//January 1, 1970 2:46:40 AM
|
||||||
};
|
ts_vec.push(time::Timespec::new(10_000, 1000));//January 1, 1970 2:46:40 AM (and one microsecond)
|
||||||
db.execute("INSERT INTO foo(t) VALUES (?)", &[&ts])
|
ts_vec.push(time::Timespec::new(1500391124, 1_000_000));//July 18, 2017
|
||||||
.unwrap();
|
ts_vec.push(time::Timespec::new(2000000000, 2_000_000));//May 18, 2033
|
||||||
|
ts_vec.push(time::Timespec::new(3000000000, 999_999_999));//January 24, 2065
|
||||||
|
ts_vec.push(time::Timespec::new(10000000000, 0));//November 20, 2286
|
||||||
|
|
||||||
|
for ts in ts_vec {
|
||||||
|
|
||||||
|
db.execute("INSERT INTO foo(t) VALUES (?)", &[&ts])
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
let from: time::Timespec = db.query_row("SELECT t FROM foo", &[], |r| r.get(0))
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
|
db.execute("DELETE FROM foo", &[]).unwrap();
|
||||||
|
|
||||||
|
assert_eq!(from, ts);
|
||||||
|
}
|
||||||
|
|
||||||
let from: time::Timespec = db.query_row("SELECT t FROM foo", &[], |r| r.get(0))
|
|
||||||
.unwrap();
|
|
||||||
assert_eq!(from, ts);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user