PDA

View Full Version : سوال: رشته و تاریخ



Marjan_Bala
سه شنبه 26 شهریور 1387, 03:59 صبح
با سلام
من یکی از فیلدهای جدولم از نوع nvarchar هست و توی اون تاریخ رو نگه میدارم.
بدین ترتیب که تاریخ هرروز رو به رشته تبدیل می کنم و توی اون نگه میدارم.(حالا اینکه چرا نوع فیلدمو از نوع SmallDateTime تعریف نکردم بماند)
حالا میخوام یه سری مقایسه رو تاریخام انجام بده و لازمه که مقادیر قیلدهامو از رشته به تاریخ تبدیل کنم و
کسی میدونه رشته ای که از نوع nvarchar هستو چجوری باید به تاریخ تبدیل کنم؟
البته من الان از این کد استفاده می کنم:



SqlConnection connect;
SqlDataReader Dr;
SqlCommand cmd;

connect = new SqlConnection("ConString");
connect.Open();

StrSql = "select [x] from [ResRezerve] where CAST(DateTimeRez AS smalldatetime)>" +
"CAST('" + MyDate.ToString ()+ "' AS smalldatetime)";
connect.Open();
cmd = new SqlCommand(StrSql, connect);
Dr = cmd.ExecuteReader();
Dr.Read();



لازم به ذکره که DateTimeRezهمون فیلدیه که نوعش nvarchar هست و با متغیر MyDate که مقدارش 2009/02/19 12:00:00 ب.ظ هست قصد مقایسشونو دارم ولی بعد از اینکه به خط ()Dr.Read میرسه این Error رو میده:
Conversion failed when converting character string to smalldatetime data type.
اگه اون تک کوتیشنو نزارم هم باز Error میده.

حالا باید چیکار کنم؟

Marjan_Bala
سه شنبه 26 شهریور 1387, 14:18 عصر
این مشکلمو هم کسی نمیتونه حل کنه؟

salehbagheri
سه شنبه 26 شهریور 1387, 15:25 عصر
بهتره اول اون رو در یک متغیر فراخوانی کنید و بعد از توابع خود VS تبدیل به تاریخ کنی!



Dim DateOrTime as String = Reader("DateField")
Dim CDateOrTime As DateTime = CDate(DateOrTime)


البته #C بنده زیاد خوب نیست، ممکنه کد زیر کمی غلط باشه!


String DateOrTime=Reader["DateField"];
DateTime CDateOrTime = cDate[DateOrTime]