MySqlでは、YEARWEEK()を使用して、週とその週の関連する年を1つの文字列で受け取ることができます。(例えばSELECT YEARWEEK('1987-01-01');
、「198653」につながる)。
Oracle10gにそのようなものはありますか?
私はTO_CHAR関数についてしか知りません。しかし、使用するTO_CHAR(sysdate, 'YYYYIW');
と、198653ではなく198753を受け取ります。では、これを正しく計算するにはどうすればよいでしょうか。
MySqlでは、YEARWEEK()を使用して、週とその週の関連する年を1つの文字列で受け取ることができます。(例えばSELECT YEARWEEK('1987-01-01');
、「198653」につながる)。
Oracle10gにそのようなものはありますか?
私はTO_CHAR関数についてしか知りません。しかし、使用するTO_CHAR(sysdate, 'YYYYIW');
と、198653ではなく198753を受け取ります。では、これを正しく計算するにはどうすればよいでしょうか。
IYYYIW
format を使用しTO_CHAR()
ても違いはありますか? 最初の「Y」の代わりに先頭の「 I 」に注意してください。これは ISO 規格に基づいた 4 桁の年です。
Oracle が 198753 を返す例を再現できません。
select TO_CHAR(DATE '1987-01-01', 'YYYYIW') from dual
198701
週番号のISO定義に従って正しいものを返します。
Oracle には、年の最初の日が含まれる週を週 #1 として使用する別の書式マスクWW
( の代わりにIW
) があります。これは、1 月 1 日の週番号 1 を返します。
こちらをご覧ください: http://en.wikipedia.org/wiki/Week_number#Week_numbering
1987 年 1 月 1 日の週 53 を返す週番号付けスキームがないため、MySQL の週番号は実際には少し奇妙です (しかし、それはあまり意味がありません...)