1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
use chrono::{DateTime, NaiveDate, NaiveDateTime, Utc};
use repr::strconv;
sqlfunc!(
#[sqlname = "datetostr"]
#[preserves_uniqueness = true]
fn cast_date_to_string(a: NaiveDate) -> String {
let mut buf = String::new();
strconv::format_date(&mut buf, a);
buf
}
);
sqlfunc!(
#[sqlname = "datetots"]
#[preserves_uniqueness = true]
fn cast_date_to_timestamp(a: NaiveDate) -> NaiveDateTime {
a.and_hms(0, 0, 0)
}
);
sqlfunc!(
#[sqlname = "datetotstz"]
#[preserves_uniqueness = true]
fn cast_date_to_timestamp_tz(a: NaiveDate) -> DateTime<Utc> {
DateTime::<Utc>::from_utc(a.and_hms(0, 0, 0), Utc)
}
);