1

我正在寻找一种仅获取仅在星期一发生的时间戳的方法。因此,例如,如果我有一个类似 的时间戳2013-07-22 00:30:28:584,它应该与查询匹配,而第二天的相同时间戳不应该(即2013-07-23 00:30:28:584)。

我知道我可以使用以下内容对 SQL 查询中的日期进行硬编码:

SELECT *
FROM my_table
WHERE DATE(my_timestamp) IN ('2013-08-12', '2013-08-05', ... , '2013-03-04');

但我希望有一种方法可以在查询中动态计算出来,而不必专门列出所需的日期。

我想过做类似的事情:

SELECT *
FROM my_table
WHERE DATE(my_timestamp) = TODAY - INTERVAL(6) DAY TO DAY;

...但这只会得到最后一个星期一而不是所有星期一,并且INTERVAL(?)无论如何都必须根据执行 SQL 的日期进行更新。

有谁知道这样做的方法?或者,如果这根本不可能?

4

1 回答 1

3

您正在寻找weekday功能:

where weekday(my_timestamp) = 1;

它记录在这里

于 2013-08-11T14:59:59.207 回答