MySQL中是否有一个函数可以返回给定日期的一周的开始



所以,假设当前日期是2022-03-04 10:45:26,我想让一个查询重新调整2022-02-27 00:00:00之后的每个条目。

我找到了SUBDATE(eventDate, WEEKDAY(eventDate)),但这还不够精确。

换句话说,这就是我正在寻找的查询

SELECT * 
FROM ts_punch_events
WHERE eventDate > "2022-02-27 00:00:00";

但是使用参数(如NOW()或用户定义的参数(来过滤结果。

换句话说,我正在寻找一种方法;函数";返回此

fn("2022-03-04 10:45:26");   ->   "2022-02-26 00:00:00"
fn("2022-01-07 09:38:43");   ->   "2022-01-02 00:00:00"
fn(NOW())                    ->   ... first day of the week at 00:00:00

JavaScript中的等效项是startOfWeek。

// The start of a week for 2 September 2014 11:55:00:
const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))
//=> Sun Aug 31 2014 00:00:00
SELECT DATE(eventDate - INTERVAL (WEEKDAY(eventDate) + 1) MOD 7 DAY) AS week_start
FROM datatable

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=f3ede945ed02693b47d5f9fb2018ea6e

最新更新