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

C#を使用したmysql日時形式

    最初にSQLクエリに値を直接含めようとすると、うまくいきません。パラメータ化されたSQLを使用し、値DateTimeとして指定します 、データベーステーブルもであると仮定します 日付/日時フィールド(本来あるべきもの)を使用すれば、問題ないはずです。

    次の3つの理由から、SQLに値を直接含めることは避けてください。

    • 不適切な形式などを使用する可能性のある厄介な文字列変換が発生します。これがここでの問題です。
    • SQLインジェクション攻撃 を招待しています
    • コードとデータが混在しているため、コードの読み取りが難しくなり、データの確認が難しくなります

    次のようなものが必要です:

    string sql = @"Select distinct v.* from Ven v 
                   inner join Des d on v.venid=d.venid 
                   and cast(d.despdate as datetime) between @start and @end";
    using (MySqlCommand command = new MySqlCommand(connection, sql))
    {
        command.Parameters.AddWithValue("@start", startDateTime);
        command.Parameters.AddWithValue("@end", endDateTime);
        // Execute the command here
    }
    

    Des.despdateの場合 そうではありません すでに適切なデータ型である場合は、それを変更する必要があります...



    1. MySQL-約を取得する普遍的な方法。バイト単位の行サイズ

    2. Postgres + Hibernate + Java UUID

    3. 列xxxのSpringDataJPA null値が、postgresqlのシリアル列のnot-null制約に違反しています

    4. 整数値が正しくありません:行1の列'id'の''