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

式をデータ型 datetime に変換する際の算術オーバーフロー エラー

    9 月 31 日は日付ではないため、SQL は日付に変換できません。

    余談ですが、文化に固有の形式 (yyyyMMdd) で日付をハードコーディングする必要があります。 01/08/2012 あなたのサーバーでは 8 月 1 日に変換されるかもしれませんが、別のサーバーでは 1 月 8 日に実行される可能性があります。 20120801 は、すべてで 8 月 1 日に変換されます

    さらに、なぜ日付を NVARCHAR に変換するのですか ?あなたが持っているインデックスの利点を取り除き、不必要な暗黙的および明示的な変換も実行しています。 MESSAGEINSERTDATE を想定 ちょうど使用できる DATETIME 列です

    WHERE MESSAGEINSERTDATE BETWEEN '20120801' AND '20120930'
    

    MESSAGEINSERTDATE から時刻を削除する必要がある場合 使う

    CAST(MESSAGEINSERTDATE AS DATE)
    



    1. OracleのSYSDATEに相当するPostgreSQLとは何ですか?

    2. 新しいユーザーを作成するときのMysqlの問題

    3. Java MySQLのexecuteUpdate()は、INSERT ON ON DUPLICATE KEY UPDATEに対して何を返しますか?

    4. Javaの並べ替えはMySQLの並べ替えと同じではありません