data_faking/data/datetime/
sql.rs1use crate::utils::seeder;
17use wasm_bindgen::prelude::*;
18
19pub const YEAR_MIN: i32 = 1971;
21pub const YEAR_MAX: i32 = 2037;
22
23pub const MONTH_MIN: i32 = 1;
24pub const MONTH_MAX: i32 = 12;
25
26pub const DAYS_MIN: i32 = 1;
28pub const DAYS_MAX: i32 = 28;
29
30pub const HOURS_MIN: i32 = 0;
31pub const HOURS_MAX: i32 = 23;
32
33pub const MINUTES_MIN: i32 = 0;
34pub const MINUTES_MAX: i32 = 59;
35
36pub const SECONDS_MIN: i32 = 0;
37pub const SECONDS_MAX: i32 = 59;
38
39pub const NANO_MIN: i32 = 0;
40pub const NANO_MAX: i32 = 23;
41
42fn zero_pad_string(arg: i32) -> String {
49 if arg < 10 {
50 format!("0{}",arg)
51 } else {
52 arg.to_string()
53 }
54}
55
56#[wasm_bindgen]
57pub fn sql_time() -> String {
58 format!(
59 "{}:{}:{}",
60 zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
61 zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
62 zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX))
63 )
64}
65
66#[wasm_bindgen]
67pub fn sql_server_time() -> String {
68 format!(
69 "{}:{}:{}.{}{}{}{}{}{}{}",
70 zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
71 zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
72 zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX)),
73
74 seeder::gen_range(0..=9),
75 seeder::gen_range(0..=9),
76 seeder::gen_range(0..=9),
77 seeder::gen_range(0..=9),
78 seeder::gen_range(0..=9),
79 seeder::gen_range(0..=9),
80 seeder::gen_range(0..=9)
81 )
82}
83
84#[wasm_bindgen]
85pub fn sql_date() -> String {
86 format!(
87 "{}-{}-{}",
88 zero_pad_string(seeder::gen_range(YEAR_MIN..=YEAR_MAX)),
89 zero_pad_string(seeder::gen_range(MONTH_MIN..=MONTH_MAX)),
90 zero_pad_string(seeder::gen_range(DAYS_MIN..=DAYS_MAX))
91 )
92}
93
94#[wasm_bindgen]
95pub fn sql_datetime() -> String {
96 format!(
97 "{}-{}-{} {}:{}:{}.{}{}{}{}{}",
98 zero_pad_string(seeder::gen_range(YEAR_MIN..=YEAR_MAX)),
99 zero_pad_string(seeder::gen_range(MONTH_MIN..=MONTH_MAX)),
100 zero_pad_string(seeder::gen_range(DAYS_MIN..=DAYS_MAX)),
101
102 zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
103 zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
104 zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX)),
105
106 seeder::gen_range(0..=9),
107 seeder::gen_range(0..=9),
108 seeder::gen_range(0..=9),
109 seeder::gen_range(0..=9),
110 seeder::gen_range(0..=9)
111 )
112}
113
114#[wasm_bindgen]
115pub fn sql_server_datetime() -> String {
116 format!(
117 "{}-{}-{} {}:{}:{}.{}{}{}",
118 zero_pad_string(seeder::gen_range(YEAR_MIN..=YEAR_MAX)),
119 zero_pad_string(seeder::gen_range(MONTH_MIN..=MONTH_MAX)),
120 zero_pad_string(seeder::gen_range(DAYS_MIN..=DAYS_MAX)),
121
122 zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
123 zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
124 zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX)),
125
126 seeder::gen_range(0..=9),
127 seeder::gen_range(0..=9),
128 seeder::gen_range(0..=9)
129 )
130}
131
132#[wasm_bindgen]
133pub fn sql_server_datetime2() -> String {
134 format!(
135 "{}-{}-{} {}:{}:{}.{}{}{}{}{}{}{}",
136 zero_pad_string(seeder::gen_range(YEAR_MIN..=YEAR_MAX)),
137 zero_pad_string(seeder::gen_range(MONTH_MIN..=MONTH_MAX)),
138 zero_pad_string(seeder::gen_range(DAYS_MIN..=DAYS_MAX)),
139
140 zero_pad_string(seeder::gen_range(HOURS_MIN..=HOURS_MAX)),
141 zero_pad_string(seeder::gen_range(MINUTES_MIN..=MINUTES_MAX)),
142 zero_pad_string(seeder::gen_range(SECONDS_MIN..=SECONDS_MAX)),
143
144 seeder::gen_range(0..=9),
145 seeder::gen_range(0..=9),
146 seeder::gen_range(0..=9),
147 seeder::gen_range(0..=9),
148 seeder::gen_range(0..=9),
149 seeder::gen_range(0..=9),
150 seeder::gen_range(0..=9)
151 )
152}