Tôi có một bảng và ngày-thời gian trong đó là ở định dạng:Làm cách nào để chuyển datetime từ C# sang sql chính xác?
2011-07-01 15:17:33.357
Tôi lấy aC# DateTime khi tôi làm một ToString() trên đối tượng Tôi nhận được một DateTime trong định dạng :
04/07/2011 06:06:17
Tôi tự hỏi làm cách nào tôi chuyển đúng DateTime chính xác vì khi tôi chạy SQL trong mã của chúng tôi, nó không hoạt động (tức là chọn DateTime chính xác). Tôi không thể sử dụng SQL profiler.
Đây là mã:
//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;
}
}
}
CẬP NHẬT *******************
tôi đã chạy lệnh sau đây trên dữ liệu:
SELECT * FROM tbl_webLogging
WHERE userid = 1
AND DateAdded > '2011-07-01 07:19:58.000'
Và
SELECT * FROM tbl_webLogging
WHERE userid = 1
AND DateAdded > '04/07/2011 07:19:58'
Một trả 53 reco rds khác trả về 69 hồ sơ. Làm sao có thể? Và khi tôi vượt qua các DateTime (04/07/2011 07:19:58) từ C# đến SQL không có hồ sơ hiển thị ở tất cả!
Loại cột 'DateAdded' trong bảng của bạn là gì? Có phải là DateTime không? Hoặc một số loại VARCHAR? –
Bạn có thể xác nhận rằng 'DateAdded' có kiểu' datetime', không phải cái gì đó giống '[n] varchar (x)'? –
Vậy tại sao C# datetime trở lại với 0 bản ghi? (trình gỡ lỗi nói rằng đó là '04/07/2011 07:19:58 ') @Maras kiểu dữ liệu là datetime .... – Exitos