7

select ステートメントがあるとします。

SELECT COUNT(*), wedding, DATE_FORMAT(weddate, '%y %m %d') FROM weddingtable

返される月から 1 を引くことができるようにしたい: たとえば:

SELECT COUNT(*), wedding, DATE_FORMAT(weddate, '%y %m-1 %d') FROM weddingtable

月から実際に 1 を引くのではなく、月の整数に "-1" を追加するように見えます。どうすればこれを達成できますか? (つまり、通常は %m の代わりに 5 を返すところに、4 などを返します。)

注: 1 月の場合、%m の代わりに "0" を指定します。

4

2 に答える 2

14

あなたのソリューションは以下から導き出すことができます:月と日を減算する mysql

例えば(DATE_SUB(curdate(), INTERVAL 1 MONTH)

SELECT COUNT(*), wedding, DATE_SUB(weddate,INTERVAL 1 MONTH) FROM weddingtable
于 2013-06-05T17:18:02.907 に答える
0

から 1 か月を減算するには、次weddateを使用しますwebdate - INTERVAL 1 MONTH

SELECT COUNT(*), wedding, DATE_FORMAT(weddate - INTERVAL 1 MONTH, '%y %m %d') FROM weddingtable

更新:減算後に月「0」で減算を終了するには、日付演算を使用できなくなります (月 0 がないため)。extract代わりに、関数で日付を分離し、その部分を文字列として連結する必要があります。

concat_ws(' ', extract(year from webdate), 
               extract(month from webdate)-1, 
               extract(date from webdate))
于 2013-06-05T17:18:28.927 に答える