2011-08-04 18 views
6

これはSQLのいくつかの例を見てきましたが、私は特にMySQLを探しています。MySQL - 四半期の最後の日(最も効率的な方法)

これは私が持っているコードです(これはうまくいきますが、劇的に非効率だと思います)。私は任意の日付 '2011-05-15'を使用しています。これは '2011-06-30'を返す必要があります。

DATE_SUB( 
    DATE_ADD( 
     CONCAT( 
      YEAR(CURDATE()), 
      '-01-01' 
     ), 
     INTERVAL QUARTER('2011-05-15') QUARTER 
    ), 
    INTERVAL 1 DAY 
) 

これを行うにはどうすればよいですか?

答えて

7

一般に、MySQLの組み込み関数は、ディスクやメモリI/Oなどの他の要素と比較して非常に高速であるため、効率にほとんど影響しません。

おそらく、文字列変換を取り除くことにより、いくつかのミリ秒を救うことができる:

SELECT MAKEDATE(YEAR(CURDATE()), 1) + INTERVAL QUARTER(CURDATE()) QUARTER - INTERVAL 1 DAY 

しかし、再び、私もこのような最適化のために心配しないでしょう。

+0

私は部分的に興味を持っていました。私はそれをやっていたときに必要な機能の数に気を配っていましたが、文字列の変換は省略したいと思いました。 –

関連する問題