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();
答
使用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();
}
您的脚本很容易出现SQL注入http://en.wikipedia.org/wiki/SQL_injection – Curt 2012-08-09 11:43:27
请使用[的SqlParameter(http://msdn.microsoft。 COM/EN-US /库/ system.data.sqlclient.sqlparameter.aspx)。注意文档中的示例。 – Reniuz 2012-08-09 11:45:28
在日期字段u'r查询sql日期时间格式或varchar? – chamara 2012-08-09 11:46:17