| 61 | } |
| 62 | |
| 63 | IntVal DateFunctions::DayOfWeek(FunctionContext* context, const DateVal& d_val) { |
| 64 | if (d_val.is_null) return IntVal::null(); |
| 65 | DateValue dv = DateValue::FromDateVal(d_val); |
| 66 | |
| 67 | // DAYOFWEEK(DATE) sql function returns day-of-week in [1, 7] range, where 1 = Sunday. |
| 68 | // dv.WeekDay() returns day-of-week in [0, 6] range. 0 = Monday and 6 = Sunday. |
| 69 | int wday = dv.WeekDay(); |
| 70 | if (wday == -1) return IntVal::null(); |
| 71 | return IntVal((wday + 1) % 7 + 1); |
| 72 | } |
| 73 | |
| 74 | IntVal DateFunctions::DayOfMonth(FunctionContext* context, const DateVal& d_val) { |
| 75 | if (d_val.is_null) return IntVal::null(); |