| 216 | |
| 217 | template <bool is_add, typename AnyIntVal> |
| 218 | DateVal DateFunctions::AddSubYears(FunctionContext* context, const DateVal& d_val, |
| 219 | const AnyIntVal& num_years) { |
| 220 | if (d_val.is_null || num_years.is_null) return DateVal::null(); |
| 221 | |
| 222 | const DateValue dv = DateValue::FromDateVal(d_val).AddYears( |
| 223 | is_add ? num_years.val : -num_years.val); |
| 224 | return dv.ToDateVal(); |
| 225 | } |
| 226 | |
| 227 | template <bool is_add, typename AnyIntVal, bool keep_last_day> |
| 228 | DateVal DateFunctions::AddSubMonths(FunctionContext* context, const DateVal& d_val, |