0

私はこのコードを持っています:

DATESUB(CURDATE(), INTERVAL x MONTH)

ここで、x はストアド プロシージャ内にあります。ただし、x か月前の日付を見つける代わりに、それが何月だったかを見つけて、正しい英語としてラベルを付ける必要があります。

たとえば、今日は 12 月です。x が 2 の場合、2012/10/02 が返されます。これの代わりに私はただ10月が欲しい

4

2 に答える 2

1

あなたが使用したいでしょう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 を参照してください

于 2012-12-02T21:28:02.427 に答える
1

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を参照してください。

于 2012-12-02T21:30:15.550 に答える