0

C#で次のクエリを使用して、Sqliteデータベースからデータを取得しています

SELECT * FROM tableName

それは正常に動作します。しかし、次のような日付に基づいてデータを取得したい:

SELECT * FROM tableName WHERE date=09-09-2013

しかし、Sqlite の日付表現はこの日付形式ではないため、うまくいきません。私が聞きたいのは、上記のクエリで述べたように、ユーザーの日付と時刻に基づいて Sqlite データを取得できる方法と、ユーザーが読み取り可能な形式で Sqlite データベースの日付と時刻を表す方法があることです。

4

1 に答える 1

2

パラメータ化されたクエリは、さまざまなデータベース エンジンで日付、文字列、および小数に必要な書式設定からコードを解放します。

using (SqliteConnection con = new SqliteConnection(connectionString)) 
{
    con.Open();
    string commandText =  "SELECT * FROM tableName WHERE date=@dt";
    using (SqliteCommand cmd = new SqliteCommand(commandText, con))
    {
        cmd.Parameters.AddWithValue("@dt", yourDateVariable)
        SqliteReader reader = cmd.ExecuteReader();
        while(reader.Read())
        {
            // Extract your data from the reader here
            .....
        }
    }             
}

この例のポイントは、パラメーター化されたクエリを作成する方法を示すことです。このようにして、datetime 変数の値を、基礎となるシステムの日付をフォーマットする方法をよりよく知っている Sqlite エンジンのフレームワークに渡します。

commandText変数では、日付の実際の書式設定された値が placeholder によって取得され、@dtSqliteCommand Parameters コレクションに、プレースホルダーと同じ名前のパラメーターと日付変数の値が追加されます。

于 2013-09-08T20:47:33.270 に答える