将分钟存储到数据库

本文关键字:数据库 存储 分钟 | 更新日期: 2023-09-27 17:50:20

你好,我是编程新手,我有以下问题

string tt = drpPickuptime.SelectedItem.Text;            
DateTime mora = Convert.ToDateTime(tt);

我也试过这个

string tt = drpPickuptime.SelectedItem.Text;           
DateTime mora = DateTime.Parse(tt, new CultureInfo("fr-FR")).Date;

和这个1也

DateTime mora = DateTime.ParseExact(drpPickuptime.SelectedItem.Text, "mm", CultureInfo.CurrentCulture);

,但错误没有纠正。问题是,我有一个组合框,我已经把分钟那里将由用户选择。我想把这个值存到数据库中。但在数据库中,该字段的数据类型是datetime。当我将其更改为字符串时,问题就解决了。但是,是否可以将该字符串存储在具有所需条件的数据库中?虽然这不是一个好问题,但我已经尽了我所有的努力,不能得到结果。谁能帮我一下?

将分钟存储到数据库

问题是您不能仅用分钟创建有效的DateTime,需要有日期(年、月、日)。

如果您只是在数据库中存储分钟,那么我建议使用int类型。如果你真的必须有一个DateTime,那么你也需要存储一个日期,也许今天的日期是一个选项?在这种情况下,你可以这样做:

int minutes = int.Parse(drpPickuptime.SelectedItem.Text);
DateTime dt = DateTime.Today.AddMinutes(minutes);

我认为最好的方法是将数据类型更改为bigint,并将其存储为时间跨度。您可以将时间跨度的Ticks属性存储在数据库中,然后当您将其返回时,只需执行TimeSpan.FromTicks(database field)。为了存储它,你可以使用TimeSpan.FromMinutes(your comobobox value),你必须将组合框的值解析为一个整数。

您不能像@Jon提到的那样将分钟作为DateTime存储在数据库中。您必须将该值存储为整数。然后,如果您想将这些分钟应用于某个日期值,您可以这样做:

DateTime d = DateTime.Now.AddMinutes(tt);

或者如果你想要过去的时间,你可以这样做:

DateTime d = DateTime.Now.AddMinutes(tt * -1);

也可以作为字符串存储在数据库中。然后在你的代码中你可以做一个int。解析将其从字符串转换为整数。