У меня есть таблица и дата-время в ней имеют формат:
2011-07-01 15:17:33.357
Я принимаю ac # DateTime, когда выполняю .ToString () для объекта, который я получаю DateTimeв формате:
04/07/2011 06:06:17
Мне интересно, как правильно передать правильный DateTime, потому что когда я запускаю SQL, который есть в нашем коде, он не работает (т.е. выбирает правильный DateTime).Я не могу использовать профилировщик SQL.
Это код:
//looks to if a user has had any activity in within the last time specified
public bool IsUserActivitySinceSuppliedTime(int userId, DateTime since)
{
//get everything since the datetime specified [usually 5 hours as this is
//how long the session lasts for
string sql = "SELECT * FROM tbl_webLogging WHERE userid = @userid AND DateAdded > @sinceDateTime";
SqlParameter sinceDateTimeParam = new SqlParameter("@sinceDateTime", SqlDbType.DateTime);
sinceDateTimeParam.Value = since;
SqlCommand command = new SqlCommand(sql);
command.Parameters.AddWithValue("@userid", userId);
command.Parameters.Add(sinceDateTimeParam);
using (SqlDataReader DataReader = GetDataReader(command))
{
if (DataReader.HasRows)
{
return true;
}
else
{
return false;
}
}
}
ОБНОВЛЕНИЕ *******************
Я запустил следующие данные:
SELECT * FROM tbl_webLogging
WHERE userid = 1
AND DateAdded > '2011-07-01 07:19:58.000'
И
SELECT * FROM tbl_webLogging
WHERE userid = 1
AND DateAdded > '04/07/2011 07:19:58'
Один возвращает 53 записи, другой возвращает 69 записей.Как это может быть?И когда я передаю DateTime (07.04.2011, 07:19:58) из c # в SQL, никакие записи вообще не отображаются!