c中的SQL Server日期存储#

问题描述:

我有一个查询,它从datematch上的sql server中获取信息。c中的SQL Server日期存储#

我已经搜索了很多关于SQL Server的日期字符串,我只是想与日期匹配并从数据库中获取数据。此外,我正在使用SQL Server 2005,我想获取日期并从中获取时间吗?

任何人可以帮助我...我是新来的C#

这里是我的查询。

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

您的脚本很容易出现SQL注入http://en.wikipedia.org/wiki/SQL_injection – Curt 2012-08-09 11:43:27

+1

请使用[的SqlParameter(http://msdn.microsoft。 COM/EN-US /库/ system.data.sqlclient.sqlparameter.aspx)。注意文档中的示例。 – Reniuz 2012-08-09 11:45:28

+0

在日期字段u'r查询sql日期时间格式或varchar? – chamara 2012-08-09 11:46:17

使用SQL Server CONVERT函数的输入Date参数转换为时间 更改您的查询,以适应下面CONVERT功能

SQL查询中的任何一个时间格式转换为HH:MM:SS :

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

SQL查询时间格式转换为HH:MI:SS:MMM(24小时):

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

你应该总是使用参数查询数据库时 - 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(); 
}