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

mysql-文字列を連結し、文字列を日付に変換する方法は?

    CONCAT()が鍵です。

    前:

    mysql> CREATE  PROCEDURE `getMonthlyTotalScore`(IN ninjaId int,  IN month int, IN year int)
            -> BEGIN
            ->     DECLARE startDate DATE;
            ->     DECLARE endDate DATE;
            ->     DECLARE maxDay INTEGER;
            -> 
            ->     SELECT year + '-' + month + '-01'; #NOTE THIS
            -> 
            ->     
            -> END;    
            -> |
        Query OK, 0 rows affected (0.00 sec)
    
        mysql> call getMonthlyTotalScore(1,5,2012);
            -> |
        +----------------------------+
        | year + '-' + month + '-01' |
        +----------------------------+
        |                       2016 |
        +----------------------------+
        1 row in set (0.00 sec)
    

    後:

    mysql> CREATE  PROCEDURE `getMonthlyTotalScore`(IN ninjaId int,  IN month int, IN year int)
        -> BEGIN
        ->     DECLARE startDate DATE;
        ->     DECLARE endDate DATE;
        ->     DECLARE maxDay INTEGER;
        -> 
        ->     SELECT CONCAT(year,'-',month,'-01'); # NOTE THIS
        -> 
        ->     
        -> END;    |
    Query OK, 0 rows affected (0.00 sec)
    
    mysql> call getMonthlyTotalScore(1,5,2012);
        -> |
    +------------------------------+
    | CONCAT(year,'-',month,'-01') |
    +------------------------------+
    | 2012-5-01                    |
    +------------------------------+
    1 row in set (0.00 sec)
    
    Query OK, 0 rows affected (0.00 sec)
    


    1. 複数でありながら相互に排他的な外部キー-これは進むべき道ですか?

    2. SQLクエリを実行できません

    3. 入力のタイプが不明であるため、ポリモーフィックタイプを判別できませんでした

    4. 大規模なデータベーステーブル用のSQLオプティマイザ