【问题标题】:What is difference in Date and DateTime DataType in c#c#中日期和日期时间数据类型有什么区别
【发布时间】:2012-10-14 17:57:57
【问题描述】:

示例:我通过一些查询(许多不同的查询)从数据库中获取 myDataTable,并希望将 DateDateTime 字段更改为用户所需的演示文稿。

void dgv_DataSourceChanged(object sender, EventArgs e)
{
     for (int i = 0; i < dgv.Columns.Count; i++)
     {
          if (myDataTable.Columns[i].DataType == typeof(DateTime))
              dgv.Columns[i].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
          else
          {
              if (myDataTable.Columns[i].DataType == typeof(Date))
                  dgv.Columns[i].DefaultCellStyle.Format = "dd-MM-yyyy";
          }
     }
}

您可以看到 DataType=DateTime 的列没有问题,但是无论我当前的数据库查询如何,如何处理 Date 数据类型?日期在数据库中可用,但在 c# 中不可用。

更新:我可以通过检查日期值天气的结束来做到这一点,它是 12:00: AM 或 00:00:00。但这似乎是一个虚假的解决方案,真正的 DateTime 值也可以具有相同的值。此值不保证 DataType 是 Date 而不是 DateTime

【问题讨论】:

  • datetime.Date == datetime => true 约会时。

标签: c# date datetime


【解决方案1】:
foreach( DataRow dr in datatable.Rows)
{
    DateTime dt = DateTime.ParseExact(dr["YourDateTimeColumnName"], 
                              "MM/dd/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);
    string s = dt.ToString("dd/M/yyyy");
}

现在您的 DateTime 已转换为 Date,您可以在 DataGridView 中使用它。

【讨论】:

  • 瓦吉德萨希布!你试过了吗,因为myDataTable.Columns[i].ToString() 看起来不太正确(意味着它可以在不使用任何行号的情况下工作吗?)
【解决方案2】:

也许你无法区分。在这种特殊情况下你可以做的是

for (int i = 0; i < dgv.Columns.Count; i++)
{
    if (source.Columns[i].DataType == typeof(DateTime))
    {
        string val = source.Rows[0][i].ToString();
        if (val.EndsWith("12:00:00 AM") ||val.EndsWith("00:00:00"))
        {
            dgv.Columns[i].DefaultCellStyle.Format = "yyyy-MM-dd"; 
            //Your date Format
        }
        else
           dgv.Columns[i].DefaultCellStyle.Format = "yyyy-MM-dd HH:mm:ss";
           //Your date and Time Format
     }
}

【讨论】:

    【解决方案3】:

    C# 中只有 DateTime 数据类型可用于 datetimedate SQL Sever 数据类型。

    请参阅以下数据类型映射表以供参考: SQL Server Data Type Mappings

    【讨论】:

      猜你喜欢
      • 2011-05-26
      • 1970-01-01
      • 2021-12-10
      • 2020-10-19
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      • 2014-11-10
      • 1970-01-01
      相关资源
      最近更新 更多