0

datematchでSQLサーバーから情報を取得するクエリがあります。

SQL Serverの日付文字列について多くのことを検索しました。日付と一致させて、データベースからデータを取得したいだけです。また、SQL Server 2005を使用していますが、日付を取得して時間を取りたいですか?

誰かがその中で私を助けることができます...私はC#に不慣れです

これが私の質問です。

return "select Timein, Timeout from Attendance where E_ID = " + E_ID + " and Date = " + DateTime.Now.ToShortDateString(); 
4

2 に答える 2

1

データベースをクエリするときは常にパラメーターを使用する必要があります-SQLインジェクションが可能かどうかにかかわらず、パラメーターを使用することは単なる良い習慣であり、有効なSQLにするためにここで必要な引用符の数と種類のいくつかを解決しますステートメントの質問も。

したがって、次のようなものを試してください。

string sqlStmt = "SELECT Timein, Timeout FROM dbo.Attendance " + 
                 "WHERE E_ID = @ID AND Date = @Date";

using(SqlConnection conn = new SqlConnection("your-connection-string-here"))
using(SqlCommand cmd = new SqlCommand(sqlStmt, conn))
{
    // set up parameters
    cmd.Parameters.Add("@ID", SqlDbType.Int).Value = E_ID;
    cmd.Parameters.Add("@Date", SqlDbType.DateTime).Value = DateTime.Now.Date;

    // open connection, read data, close connection
    conn.Open();

    using(SqlDataReader rdr = cmd.ExecuteReader())
    {
       while(rdr.Read())
       {
          // read your data
       }

       rdr.Close();
    }

    conn.Close();
}
于 2012-08-09T12:09:31.387 に答える
1

SQLサーバーのCONVERT関数を使用して、入力日付パラメータを時間に変換します 以下のCONVERT関数のいずれかに対応するようにクエリを変更します

時刻形式を hh:mm:ss に変換する SQL クエリ:

select convert(varchar, <<dateparam>>, 108) 

時刻形式を hh:mi:ss:mmm(24h) に変換する SQL クエリ:

select convert(varchar, <<dateparam>>, 114) 
于 2012-08-09T11:56:58.257 に答える