无法格式化数据库中的日期类型数据

时间:2013-06-19 08:12:14

标签: c# winforms sql-server-2008-r2

当我从数据库中获取信息时,我无法格式化日期类型信息。

我正在使用:

while (sqlReader.Read())
{
    var payment = new Payment
    {
        Id = Convert.ToInt32(sqlReader["Id"]),
        Amount = Convert.ToDecimal(sqlReader["Amount"]),
        StartDay = Convert.ToDateTime(sqlReader["StartDay"]), //I want this to get this format dd.MM.yyyy
        EndDay = Convert.ToDateTime(sqlReader["EndDay"]) //I want this to get this format dd.MM.yyyy
    };

    Payments.Add(payment);
}

我尝试了我的扩展程序:.ToShortDate(),尝试DateTime.ParseExact,我一直这样做:String was not recognized as a valid DateTime.

4 个答案:

答案 0 :(得分:1)

尝试使用上面的示例,为了工作,必须将StartDay的数据类型,EndDay从DateTime更改为string

 StartDay = sqlReader["StartDay"] != null ? Convert.ToDateTime(sqlReader["StartDay"]).ToString("dd.MM.yyyy") : new Date(DateTime.Now.Year,01,01);

答案 1 :(得分:0)

答案 2 :(得分:0)

Oracle.DataAccess示例:

DateTime value=default(DateTime);
if (!reader.IsDBNull(1))
     value= reader.GetDateTime(1);  

1-列数

答案 3 :(得分:0)

使用DateTime.Parse()传递文化格式:

StartDay = DateTime.Parse("2013/06/19", new CultureInfo("en-GB", false));

给出日期:

  

19/06/2013 00:00:00

如果需要,您可以通过调用.ToShortDateString()来删除小时/分钟/秒。

实际上,您应该能够正常地从数据库中获取日期,然后通过调用它上面的.ToString("dd/MM/yyyy");来控制它在前端的输出方式。

Response.Write(StartDate.ToString("dd/MM/yyyy"));