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

一部の期間内の日付です

    この関数はあなたが望むことをするはずです。これは、ブール結果を数値コンテキストで1または0として扱うMySQLに依存しているため、MAX 呼び出しは事実上ORになります すべての条件の。

    CREATE FUNCTION check_activity(project_id INT, check_date DATE)
    RETURNS BOOLEAN
    DETERMINISTIC
    BEGIN
      RETURN (SELECT MAX(check_date BETWEEN ActiveFrom AND ActiveTo) FROM projects WHERE ProjId = project_id);
    END
    SELECT check_activity(20, '2018-01-10'), check_activity(20, '2018-02-01')
    

    出力

    check_activity(20, '2018-01-10')    check_activity(20, '2018-02-01')
    1                                   0
    

    dbfiddleのデモ




    1. OUT パラメータとして SYS_REFCURSOR を持つ Oracle 関数を呼び出す方法

    2. phpMyAdminでUTF-8文字を表示するにはどうすればよいですか?

    3. innodb_lock_wait_timeoutタイムアウトを増やす

    4. cakephpは古いデータ値+新しい値から更新データを保存します