sql >> データベース >  >> RDS >> Mysql

SQLでの日付範囲の共通部分

    あなたの例が最初の行で70と言っているはずなら、

    条件パラメーターとして@range_startと@range_endを想定します:

    SELECT SUM( LEAST(@range_end, stop) - GREATEST(@range_start, start) )
    FROM Table
    WHERE @range_start < stop AND @range_end > start
    

    greatest を使用する /leastおよび日付関数 日付タイプを直接操作して、必要なものを入手できるはずです。



    1. 行の値を動的な列数の列に変換するにはどうすればよいですか?

    2. Oracleで例外が発生した後もカーソルループ処理を続行する方法

    3. 隣接モデル、IDを指定すると、リーフノードが返されます

    4. 同じSELECT句での列エイリアスの使用