0

我有一个查询,它在 datematch 上从 sql server 获取信息。

我已经搜索了很多关于 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 server 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 回答
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 回答