有没有比编写更简单的方法:
从双中选择 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/