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

QoQを実行した後、目的の出力が得られない

    インメモリクエリ(QoQ)は、データ型に関しては注意が必要な場合があります。それらは、データベースよりも暗黙のデータ型変換についてはるかに賢明ではありません。 MySQLのdate_formatを使用する 関数では、実際に日時の値を文字列に変換しています。 。したがって、QoQを実行すると、CFが実際に文字列を実行している可能性があります。 比較。日付とは非常に異なる結果が得られます。 比較。間違った結果が得られる理由を説明できます。

    データベースを変更してみてください 文字列の代わりに日時値を返すクエリ:

    SELECT 
       COUNT(Timedetail) as Occurances
       , STR_TO_DATE( DATE_FORMAT(Timedetail,'%m-%d-%Y'), '%m-%d-%Y') AS Timedetail
    FROM   ....
    WHERE  ...
    

    更新:

    もう1つのオプションは、値をDATEとしてキャストすることです。 QoQで。これにより、QoQは文字列比較ではなく、日付比較を実行するようになります。

    WHERE  CAST(Timedetail AS DATE) >= <cfqueryparam value="#form.startdate#" 
                                              cfsqltype="cf_sql_date"> 
    


    1. ストアドプロシージャの実行中にPHPApacheがクラッシュする

    2. 方法:mysql InnoDBストレージエンジンをクリーンアップしますか?

    3. RDS Postgresデータベースをpg_dumpする方法は?

    4. データベーステーブルの列が多すぎますか?