青木 (2011年10月17日 19:09) システムソリューション事業部 / MySQL
4年ぶりに日本人の大関(琴奨菊)が誕生しました。 同じ年齢ということもあるので応援しています。
みなさん、こんにちは。
大関が「万理一空の境地を求めて日々努力、精進いたします」 と口上を述べたのは「2011/09/28」のことです。 あれから何週間経ったのかを調べたくなりましたので、 MySQLで現在の日付から特定の日付までの週数を求める関数を作成しました。
CREATE FUNCTION SHUSU(date1 DATE, date2 DATE) RETURNS INT(11) BEGIN DECLARE shusu INT; SELECT TRUNCATE((DATEDIFF(date1, date2) / 7), 0) INTO shusu; RETURN shusu; END
①「DATEDIFF(date1, date2)」で日付の差を求めます。 ②「TRUNCATE((① / 7), 0)」で週数に変換します。
実行結果です。(※2011/10/14に実行しています) ---------- SELECT SHUSU(CURRENT_DATE(), '2011/10/14') → 0
SELECT SHUSU(CURRENT_DATE(), '2011/10/13') → 0
SELECT SHUSU(CURRENT_DATE(), '2011/10/08') → 0
SELECT SHUSU(CURRENT_DATE(), '2011/10/07') → 1 ---------- 口上を述べたのは今から2週間前ということですね。 SELECT SHUSU(CURRENT_DATE(), '2011/09/28') → 2
【MySQL】週数を求める関数
青木 (2011年10月17日 19:09)
システムソリューション事業部 / MySQL
4年ぶりに日本人の大関(琴奨菊)が誕生しました。
同じ年齢ということもあるので応援しています。
みなさん、こんにちは。
大関が「万理一空の境地を求めて日々努力、精進いたします」
と口上を述べたのは「2011/09/28」のことです。
あれから何週間経ったのかを調べたくなりましたので、
MySQLで現在の日付から特定の日付までの週数を求める関数を作成しました。
①「DATEDIFF(date1, date2)」で日付の差を求めます。
②「TRUNCATE((① / 7), 0)」で週数に変換します。
実行結果です。(※2011/10/14に実行しています)
----------
SELECT SHUSU(CURRENT_DATE(), '2011/10/14')
→ 0
SELECT SHUSU(CURRENT_DATE(), '2011/10/13')
→ 0
SELECT SHUSU(CURRENT_DATE(), '2011/10/08')
→ 0
SELECT SHUSU(CURRENT_DATE(), '2011/10/07')
→ 1
----------
口上を述べたのは今から2週間前ということですね。
SELECT SHUSU(CURRENT_DATE(), '2011/09/28')
→ 2