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;

...しかし、これはすべての月曜日ではなく最後の月曜日のみを取得し、SQLが実行された日に応じて更新する必要があります。INTERVAL(?)

誰もそれを行う方法を知っていますか? または、それが単に不可能な場合は?

4

1 に答える 1

3

関数を探していweekdayます:

where weekday(my_timestamp) = 1;

ここに文書化されています。

于 2013-08-11T14:59:59.207 に答える