Support TIME type and timediff function (#1505)

This commit is contained in:
HangyuanLiu
2019-07-23 13:42:40 +08:00
committed by ZHAO Chun
parent 221cd2e103
commit 4aedaea84e
37 changed files with 318 additions and 20 deletions

View File

@ -463,18 +463,16 @@ IntVal TimestampFunctions::to_days(
}
// TODO(dhc): implement this funciton really
DateTimeVal TimestampFunctions::time_diff(
DoubleVal TimestampFunctions::time_diff(
FunctionContext* ctx, const DateTimeVal& ts_val1, const DateTimeVal& ts_val2) {
if (ts_val1.is_null || ts_val2.is_null) {
return DateTimeVal::null();
return DoubleVal::null();
}
const DateTimeValue& ts_value1 = DateTimeValue::from_datetime_val(ts_val1);
const DateTimeValue& ts_value2 = DateTimeValue::from_datetime_val(ts_val2);
DateTimeValue ts = ts_value1 - ts_value2;
ts.cast_to_time();
DateTimeVal result;
ts.to_datetime_val(&result);
return result;
int64_t timediff = ts_value1.unix_timestamp() - ts_value2.unix_timestamp();
return DoubleVal(timediff);
}
IntVal TimestampFunctions::date_diff(