ホームページ  >  記事  >  データベース  >  mysql で連続した日付と変数の代入を生成する方法

mysql で連続した日付と変数の代入を生成する方法

王林
王林転載
2023-06-02 21:55:121456ブラウズ

1. 生産連続日

説明: 主に統計データを時系列で表示するために使用されます;
データベース データに翌日のデータがある場合、統計データは0 であっても毎日表示する必要がある場合は、使用するタイムテーブルを生成する必要があります;

データベース データのクエリ:

SELECT
        DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date,
        COUNT(1) AS numb
FROM
    qc_task 
    WHERE
    create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and
    department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ)) 
    GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )

翌日データを出力:

mysql で連続した日付と変数の代入を生成する方法

これでいい感じではないですか? 1階ずつ追加して並べる必要がある場合は、次のようにすることもできます。 ...
しかし、たとえ退院した場合でも、時刻は一貫性がありません;

過去 7 日間の日付を生成します:

// 方法笨,但还是有效的
select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from 
 (SELECT @num:=@num+1 as sj from 
            (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t, 
           -- (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t1,  -- 假如嫌弃生成的少,打来这个就行
            (SELECT @num:=0) y) as timeList

Generate時刻:

mysql で連続した日付と変数の代入を生成する方法

生成後の使用:

-- 生成后左右链接即可,但主表要为时间表
SELECT f.datetime, t.numb FROM 
(SELECT
        DATE_FORMAT( create_time, '%Y-%m-%d' ) AS date,
        COUNT(1) AS numb
FROM
    qc_task 
    WHERE
    create_time>= DATE_SUB(CURDATE(),INTERVAL 1 MONTH) and
    department_id IN ( SELECT id FROM `vigilante_jinan`.`qc_department` WHERE `area_code` = (@dep_BH) AND `status` = '1' AND dept_level >= (@dep_DJ)) 
    GROUP BY DATE_FORMAT( create_time, '%Y-%m-%d' )) t
right join 
(select DATE_FORMAT(SUBDATE(NOW(), interval (timeList.sj*1460) MINUTE),'%Y-%m-%d') as 'datetime' from 
 (SELECT @num:=@num+1 as sj from 
            (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4 UNION SELECT 5 UNION SELECT 6 UNION SELECT 7) t, 
            (SELECT @num:=0) y) as timeList) f  on t.date = f.datetime ;

使用後:

mysql で連続した日付と変数の代入を生成する方法

ここのデータベースにはデータがないので、数量表示は表示されません

2. 変数の割り当て

そこにあります。最初の文には @ 記号がたくさんありますよね? これらはすべて変数です。クエリ ステートメントを含めると、クエリ ステートメント全体が肥大化して非常に長くなります...そのため、いくつかのものを分割することができます;

たとえば、クエリ データベース ステートメントでは次のようになります。

mysql で連続した日付と変数の代入を生成する方法

彼らの素顔を見てみましょう:

りー

以上がmysql で連続した日付と変数の代入を生成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。