画面上で開くと、今日追加されたレコードだけを表示したい SQL Server データベースがあります。
DateAdded というフィールドに日付が格納されており、DateTime2 データ型です。
私はこれを試しました
string dateAdded = today.ToShortDateString();
string query = "SELECT CustomerID, Title, FirstName, LastName, AppStatus
FROM Customer
WHERE DateAdded ='" + dateAdded + "'";
これは、日付とともに保存された時間属性を持っているため、私が想定するレコードを表示しません。
答えを見つけるためにオンラインで検索しましたが、今日追加されたレコードだけに固有のものはないようでした.
また、ユーザー入力に基づいて日付範囲を検索する必要があります。たとえば、2013 年 9 月 1 日から 2013 年 3 月 18 日までのビュー レコードなど、任意の範囲で検索できます。
このためのSQLクエリを書くための最良の方法は何ですか?
編集 - 私の答え
カールが出した答えはうまくいきましたが、値を変更する方法がわからなかったので、異なる日付範囲を持つことができました. 受け取った回答に基づいて最終結果をここに投稿する必要がありますが、他の人の助けになるかもしれません。:)
using (SqlConnection conn = new SqlConnection(connectionString))
{
int year = date1.Year;
int month = date1.Month;
int day = date1.Day;
string dateAdded = year + "-" + month + "-" + day + " ";
int year2 = date2.Year;
int month2 = date2.Month;
int day2 = date2.Day;
string dateAdded2 = year2 + "-" + month2 + "-" + day2 + " ";
string query = "SELECT CustomerID, Title, FirstName, LastName, AppStatus, DateAdded FROM Customer WHERE DateAdded >= @date1 AND DateAdded <= @date2";
using (SqlCommand cmd = new SqlCommand(query, conn))
{
cmd.Parameters.AddWithValue("date1", dateAdded + "00:00:00");
cmd.Parameters.AddWithValue("date2", dateAdded2 + "23:59:59");
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(holder);
}
}