MYSQL - 计算星期五,因为"end of week"在"start of week"在四月和"end of week"五月时返回"null",我该如何解决这个问题?



我试图获得一周的最后一个工作日(星期五),例如2019-04-30应该给我2019-05-04,而是返回Null。我怎么解决这个问题呢?我现有的代码如下:

DELIMITER ;;
CREATE FUNCTION FIRST_DAY_OF_WEEK(day DATE)
RETURNS DATE DETERMINISTIC
BEGIN
RETURN SUBDATE(day, WEEKDAY(day));
END;;
DELIMITER ;

SELECT ID, parent_id, created_by_id, old_value, new_value, field, date, date(FIRST_DAY_OF_WEEK(date)+4) AS end_of_week_fri
FROM new_history_team_member;

Use date_Add

set @date = '2019-04-30';
select f(@date),date_add(F(@date), interval 4 day);
+------------+------------------------------------+
| f(@date)   | date_add(F(@date), interval 4 day) |
+------------+------------------------------------+
| 2019-04-29 | 2019-05-03                         |
+------------+------------------------------------+
1 row in set (0.024 sec)

PS我将你的函数重命名为F,以免混淆我的数据库,但其他方面不变

最新更新