gluesql_test_suite/ast_builder/function/datetime/
current_date_and_time.rs1use {
2 crate::*,
3 gluesql_core::{
4 ast_builder::{function as f, *},
5 prelude::{Payload, Value::*},
6 },
7};
8
9test_case!(current_date_and_time, {
10 macro_rules! t {
11 ($timestamp: expr) => {
12 $timestamp.parse().unwrap()
13 };
14 }
15
16 let glue = get_glue!();
17
18 let actual = table("Record")
19 .create_table()
20 .add_column("id INTEGER PRIMARY KEY")
21 .add_column("time_stamp TIMESTAMP")
22 .execute(glue)
23 .await;
24 let expected = Ok(Payload::Create);
25 assert_eq!(actual, expected, "create table - Record");
26
27 let actual = table("Record")
28 .insert()
29 .values(vec![
30 "1, '2022-12-23T05:30:11.164932863'",
31 "2, NOW()",
32 "3, '9999-12-31T23:59:40.364832862'",
33 ])
34 .execute(glue)
35 .await;
36 let expected = Ok(Payload::Insert(3));
37 assert_eq!(actual, expected, "insert - Record");
38
39 let actual = table("Record")
41 .select()
42 .filter(col("time_stamp").gt(f::now()))
43 .project("id, time_stamp")
44 .execute(glue)
45 .await;
46 let expected = Ok(select!(
47 id | time_stamp
48 I64 | Timestamp;
49 3 t!("9999-12-31T23:59:40.364832862")
50 ));
51 assert_eq!(actual, expected, "now");
52});