PDA

View Full Version : سوال: مشکل در فرمت ذخیره سازی تاریخ و زمان در database



bmvgod
سه شنبه 04 دی 1397, 16:51 عصر
باسلام خدمت دوستان
برای ذخیره تاریخ و زمان در دیتابیس، از کد زیر استفاده کردم:

private void btnInsert_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
string dts = dt.ToString("yyyy,MM,dd hh:mm:ss tt");
var db = new LinqToTrazoDataContext();
var ct = new CommoTable();
ct.InsertDate = DateTime.Parse(dts);
db.CommoTables.InsertOnSubmit(ct);
db.SubmitChanges();
}


ولی در دیتابیسم صدم ثانیه هم نمایش میده، که نمیخوام نمایش داده بشه.
و هم میخوام ساعتم بصورت 24 ساعت درج بشه، که درج نمیشه.

ممنون میشم راهنماییم کنید که کدمو چجوری تغییر بدم که به این تغییرات اعمال بشه.

alexmcse
سه شنبه 04 دی 1397, 19:44 عصر
یکی از راهها این است که فیلد دیتابیستون رو به استرینگ تغیر داده و این کد را درون این فیلد قرار دهید
public string GetDateNow() {
var dt = DateTime.Now;
return dt.Year + "/" + dt.Month + "/" + dt.Day + "/" + dt.Hour +"/"+ dt.Minute;
}
برای این کار هیچ فرقی نمیکند که نوع فیلد دیتابیس شما دیت باشد یا استرینگ
نتیجه یکی است

bmvgod
سه شنبه 04 دی 1397, 22:19 عصر
یکی از راهها این است که فیلد دیتابیستون رو به استرینگ تغیر داده و این کد را درون این فیلد قرار دهید
public string GetDateNow() {
var dt = DateTime.Now;
return dt.Year + "/" + dt.Month + "/" + dt.Day + "/" + dt.Hour +"/"+ dt.Minute;
}
برای این کار هیچ فرقی نمیکند که نوع فیلد دیتابیس شما دیت باشد یا استرینگ
نتیجه یکی است
الان مثلا ساعت 11 شب رو بصورت 23 نمیزنه و به ثانیه هم صدم ثانیه اضافه میکنه مثلا میزنه: 11:23:13:8759 عکس زیر رو دقت کنید:
149508
کدم رو چجوری تغییر بدم که هم صدم ثانیه حذف بشه و هم قسمت ساعتم مثلا بجای 11، 23 نمایش بده؟

bmvgod
سه شنبه 04 دی 1397, 23:03 عصر
باسلام خدمت دوستان
برای ذخیره تاریخ و زمان در دیتابیس، از کد زیر استفاده کردم:

private void btnInsert_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
string dts = dt.ToString("yyyy,MM,dd hh:mm:ss tt");
var db = new LinqToTrazoDataContext();
var ct = new CommoTable();
ct.InsertDate = DateTime.Parse(dts);
db.CommoTables.InsertOnSubmit(ct);
db.SubmitChanges();
}


ولی در دیتابیسم صدم ثانیه هم نمایش میده، که نمیخوام نمایش داده بشه.
و هم میخوام ساعتم بصورت 24 ساعت درج بشه، که درج نمیشه.

ممنون میشم راهنماییم کنید که کدمو چجوری تغییر بدم که به این تغییرات اعمال بشه.


کدمو بصورت زیر تغییر دادم ولی به خواصتم نرسیدم:

private void btnInsert_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
string dts = dt.ToString("yyyy,MM,dd");
var db = new LinqToTrazoDataContext();
CommoTable codeTbable = new CommoTable
{
InsertDate = DateTime.Parse(dts),
InserTime = DateTime.Now.TimeOfDay,
};
db.CommoTables.InsertOnSubmit(codeTbable);
db.SubmitChanges();
}
ممنون میشم راهنماییم کنید کدو چجوری تغییر بدم که بعد از ذخیره تو دییتابیس مشکلاتم حل بشه

bmvgod
چهارشنبه 05 دی 1397, 13:13 عصر
هرکاری میکنم که این مشکل رو حل کنم نمیشه، نمیدونم باید چکار کنم؟
ممنون میشم راهنماییم کنید

Mahmoud.Afrad
چهارشنبه 05 دی 1397, 14:08 عصر
اگر نوع ستون datetime هست ، مهم نیست در ویژوال استودیو چطور برای شما به نمایش در میاد. در برنامه در زمان نمایش با استفاده از فرمت مناسب به کاربر نمایش بدید.
و اینکه چرا دو ستون؟ میتونید تاریخ و زمان را در یک ستون ذخیره کنید.

bmvgod
چهارشنبه 05 دی 1397, 14:40 عصر
اگر نوع ستون datetime هست ، مهم نیست در ویژوال استودیو چطور برای شما به نمایش در میاد. در برنامه در زمان نمایش با استفاده از فرمت مناسب به کاربر نمایش بدید.
و اینکه چرا دو ستون؟ میتونید تاریخ و زمان را در یک ستون ذخیره کنید.

ستون InsertDate از نوع Date و ستون InsertTime از نوع Time(7) هست.
برای اینکه تو سرچ فرمم که فقط برحسب تاریخ هست،راحت بتونم عمل سرچ رو انجام بدم، به همین خاطر اومدم از دو ستون استفاده کردم.


الان از خط ذخیره زمانم ایراد میگیره، خطای زیر رو نشون میده:

149509

و اینکه چطوری میتونم با فرمت دلخواهم به کاربر نوشون بدم؟

ممنون میشم راهنماییم کنید که چجوری کدمو تغییر بدم که جواب مناسب رو بگیرم؟

tileiran
چهارشنبه 05 دی 1397, 16:26 عصر
منم دقیقا همین مشکل را دارم، لطفا راهنمایی بفرمایید

Mahmoud.Afrad
چهارشنبه 05 دی 1397, 20:05 عصر
روی ستون datetime هم میتونید جستجو کنید.

برای نمایش هم باید شمسی کنید. برای تبدیل هم قبلا سوال شده جستجو کنید.

bmvgod
پنج شنبه 06 دی 1397, 18:44 عصر
روی ستون datetime هم میتونید جستجو کنید.

برای نمایش هم باید شمسی کنید. برای تبدیل هم قبلا سوال شده جستجو کنید.

ممنون از راهنماییتون

alexmcse
پنج شنبه 06 دی 1397, 22:21 عصر
کدمو بصورت زیر تغییر دادم ولی به خواصتم نرسیدم:

private void btnInsert_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
string dts = dt.ToString("yyyy,MM,dd");
var db = new LinqToTrazoDataContext();
CommoTable codeTbable = new CommoTable
{
InsertDate = DateTime.Parse(dts),
InserTime = DateTime.Now.TimeOfDay,
};
db.CommoTables.InsertOnSubmit(codeTbable);
db.SubmitChanges();
}
ممنون میشم راهنماییم کنید کدو چجوری تغییر بدم که بعد از ذخیره تو دییتابیس مشکلاتم حل بشه



public string GetDateNow()
{
var dt = DateTime.Now;
return dt.Year + "/" + dt.Month + "/" + dt.Day + "/" + dt.Hour +"/"+ dt.Minute;
}




private void btnInsert_Click(object sender, EventArgs e) {

string dts =GetDateNow
var db = new LinqToTrazoDataContext();
CommoTable codeTbable = new CommoTable
{
InsertDate = DateTime.Parse(dts),
InserTime = DateTime.Now.TimeOfDay,
};
db.CommoTables.InsertOnSubmit(codeTbable);
db.SubmitChanges();
}

asiatec
سه شنبه 10 اردیبهشت 1398, 15:55 عصر
نوع ستون رو از datetime به date تغییر بدین(در سی کول سرور)

vB.N3T
یک شنبه 22 اردیبهشت 1398, 12:46 عصر
PersianCalendar pc = new PersianCalendar(); string pdate = pc.GetYear(DateTime.Now).ToString("0000") + "/" + pc.GetMonth(DateTime.Now).ToString("00") + "/" + pc.GetDayOfMonth(DateTime.Now).ToString("00");
Tarikh.Text = pdate;