File tree 1 file changed +24
-6
lines changed
ydb/public/lib/ydb_cli/common
1 file changed +24
-6
lines changed Original file line number Diff line number Diff line change @@ -133,15 +133,33 @@ class TCsvToYdbConverter {
133
133
case EPrimitiveType::Interval:
134
134
Builder.Interval (GetArithmetic<i64>(token));
135
135
break ;
136
- case EPrimitiveType::Date32:
137
- Builder.Date32 (GetArithmetic<i32>(token));
136
+ case EPrimitiveType::Date32: {
137
+ TInstant date;
138
+ if (TInstant::TryParseIso8601 (token, date)) {
139
+ Builder.Date32 (date.Days ());
140
+ } else {
141
+ Builder.Date32 (GetArithmetic<i32>(token));
142
+ }
138
143
break ;
139
- case EPrimitiveType::Datetime64:
140
- Builder.Datetime64 (GetArithmetic<i64>(token));
144
+ }
145
+ case EPrimitiveType::Datetime64: {
146
+ TInstant date;
147
+ if (TInstant::TryParseIso8601 (token, date)) {
148
+ Builder.Datetime64 (date.Seconds ());
149
+ } else {
150
+ Builder.Datetime64 (GetArithmetic<i64>(token));
151
+ }
141
152
break ;
142
- case EPrimitiveType::Timestamp64:
143
- Builder.Timestamp64 (GetArithmetic<i64>(token));
153
+ }
154
+ case EPrimitiveType::Timestamp64: {
155
+ TInstant date;
156
+ if (TInstant::TryParseIso8601 (token, date)) {
157
+ Builder.Timestamp64 (date.MicroSeconds ());
158
+ } else {
159
+ Builder.Timestamp64 (GetArithmetic<i64>(token));
160
+ }
144
161
break ;
162
+ }
145
163
case EPrimitiveType::Interval64:
146
164
Builder.Interval64 (GetArithmetic<i64>(token));
147
165
break ;
You can’t perform that action at this time.
0 commit comments