我应该在SQL Server中为hh:mm tt保存什么数据类型?

本文关键字:保存 tt 什么 数据类型 mm SQL Server 中为 hh 我应该 | 更新日期: 2023-09-27 18:16:24

我有一个web表单,它有一个hh:mm tt的下拉列表,间隔30分钟,从6:00am开始,6:30 am, 7:00am....8:00pm。如何将选定的时间保存到SQL Server中?我不确定什么数据类型(Date, DateTime, Time(7))在SQL Server我应该使用。

请帮我建议。

这是我加载 的c#代码
protected void Page_Load(object sender, EventArgs e)
{
    AddDropDownValues(ref ddlHrMin, 6, 20, 30);
}

我就是这样定义出来的hh:mm tt

 private void AddDropDownValues(ref DropDownList ddlHrMin, int startHour, int endHour, int increment)
{
    DateTime now = DateTime.Now;
    DateTime startTime = new DateTime(now.Year, now.Month, now.Day, startHour, 0, 0);
    DateTime endTime = new DateTime(now.Year, now.Month, now.Day, endHour, 0, 0);
    while (startTime <= endTime)
    {
        ddlHrMin.Items.Add(startTime.ToShortTimeString());
        startTime = startTime.AddMinutes(increment);
    }
}

我应该在SQL Server中为hh:mm tt保存什么数据类型?

这里有几个选项。一种是内置的Time类型。这是首选的类型,但是在客户端代码中使用它可能会很尴尬。在Sql Server 2005及更早版本中也不可用。由于您使用的是30分钟间隔,因此另一个选项是int,它表示自午夜以来的间隔数,或自午夜以来的分钟数。这里的技巧是您必须编写代码来转换输入和输出。您也可以使用DateTime,尽管如果您不查看特定的日期,并且只关心时间部分,那么这可能是多余的。

您绝对要避免的一件事是将该数据存储为字符串