私はこのコードを持っています:
DATESUB(CURDATE(), INTERVAL x MONTH)
ここで、x はストアド プロシージャ内にあります。ただし、x か月前の日付を見つける代わりに、それが何月だったかを見つけて、正しい英語としてラベルを付ける必要があります。
たとえば、今日は 12 月です。x が 2 の場合、2012/10/02 が返されます。これの代わりに私はただ10月が欲しい
私はこのコードを持っています:
DATESUB(CURDATE(), INTERVAL x MONTH)
ここで、x はストアド プロシージャ内にあります。ただし、x か月前の日付を見つける代わりに、それが何月だったかを見つけて、正しい英語としてラベルを付ける必要があります。
たとえば、今日は 12 月です。x が 2 の場合、2012/10/02 が返されます。これの代わりに私はただ10月が欲しい
あなたが使用したいでしょうDATE_FORMAT
:
DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL x MONTH), '%M')
使用する場合:
select DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 2 MONTH), '%M') Month
October
結果として返ってきます
デモで SQL Fiddle を参照してください
DATE_SUB
ではなく、という意味だと思いますDATESUB
。いずれにせよ、MONTHNAME
関数はあなたが望むことをします。したがって、完全な式は になりますMONTHNAME(DATE_SUB(CURDATE(), INTERVAL x MONTH))
。
これは必ずしも英語名ではないことに注意してください。表示される言語は、mysql サーバーの現在のロケールによって異なります。http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_monthnameを参照してください。