字符串:“2011-10-05”,
我是这样转换的:
 info.MarryDate = DateTime.Parse(TB_Date.Text.ToString().Trim())
到数据库中查的时候,后面带了 00:00:00
非常感谢。

解决方案 »

  1.   

    string a = "2011-10-05";
    DateTime b = DateTime.ParseExact(a, "yyyy-MM-dd",System.Globalization.CultureInfo.InvariantCulture);
      

  2.   

    这个是没有关系的。数据库里为什么会出现 2011-10-05 00:00:00。是因为数据库的列数据类型引起的。这并不影响你的使用。如果你在读取数据后,需要转换为不需要时间的日期格式,可以 DataTime.ToString("yyyy-MM-dd");
      

  3.   

    楼上正解.NET 和数据库里的数据结构 DateTime 都是包含完整的数据的,而不仅要求精确到年月日为止,如果你未指定,其他位(如时 分 秒 毫秒)就默认为零。
    取出时记得 Format 一下就好了
      

  4.   

    string a = "2011-10-05";
    DateTime b = DateTime.ParseExact(a, "yyyy-MM-dd",System.Globalization.CultureInfo.InvariantCulture); 
      

  5.   

    数据库中的数据类型,
    datetime...无论你输入的是什么样的时间,存到该类型字段的都会精确到毫秒的,默认为00:00:00.000
    smalldatetime...无论你输入的是什么样的时间,存到该类型字段的都会精确到分的,比如你存的是
    2011-10-05 14:20:29.999,实际存入数据库的结果是2011-10-05 14:21:00.000
    你只能在取数据的时候处理了,在Sql语句中转换可以参考:
    declare @a datetime
    set @a = '2011-10-05 14:20:29.999'
    select convert(nvarchar(23),@a,21) as [完整时间],
    convert(nvarchar(10),@a,23) as [年月日],
    convert(nvarchar(8),@a,108) as [时分秒]