有没有比编写更简单的方法:

从双中选择 date_sub(curdate(),间隔WEEKDAY(curdate())day)作为LastMonday

最佳答案

如果您不使用古老的MySQL,则可以将其包装在存储的函数中。

CREATE FUNCTION `LastMonday`() RETURNS DATETIME
  RETURN DATE_SUB(CURDATE(), INTERVAL WEEKDAY(CURDATE()) DAY) ;

然后打电话
select LastMonday() as LastMonday

更新:

如果遇到性能问题,可以将值保留在 session 变量中。这样,您可以确定它只会被计算一次。
set @LastMonday=LastMonday();
select @Lastmonday;

(在这个简单的查询中,它当然没有区别...)

关于MYSQL:如何查找 'last monday'的日期(性能问题),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1270850/

10-10 17:37