本帖最后由 a0172716 于 2011-05-29 16:05:06 编辑

解决方案 »

  1.   

    SQL有自带的smalldate数据类型,但是会带时秒分的
      

  2.   

    数据库中的DateTime或SmallDateTime存储的时候肯定是带有时分秒的,你只要取出来的时候格式化一下字符串,不显示时分秒就行了
      

  3.   

    那我用Gridview显示数据的,怎么把带时秒分的日期转换成年月日的形式呢
      

  4.   

    如果你的这个列是个BoundField,可以这样:
    <asp:BoundField HeaderText="日期" DataField="对应数据库的列名" DataFormatString="{0:yyyy-MM-dd}" > </asp:BoundField>
    如果用的是模板列,可以这样:
    <asp:TemplateField>
        <ItemTemplate>
           <%# Convert.ToDateTime(Eval("列名")).ToString("yyyy-MM-dd") %>
        </ItemTemplate>
    </asp:TemplateField>
      

  5.   

    大师,我把SQL里面日期的数据类型改成smalldatetime了,录入的时候,用的日期JS,格式是2011-5-23这样的,我现在的Gridview页面都进不去,提示:
    System.Data.SqlClient.SqlException: 将字符串转换为 smalldatetime 数据类型时失败。我已经把原有的SQL数据都清空了,录入了2条修改成smalldatetime类型的数据,SqlDataSource1的架构也刷新了,怎么会有上面的提示呀?
      

  6.   

    断点调试一下看看生成的sql语句是啥
      

  7.   

    额,生成 2011-05-11  String型     插入的后台代码    string   date = date1.Text;  再把DATE提交上去的  
      

  8.   

    你光看这个不行,得看最后执行的完整sql语句才知道错误到底在哪
      

  9.   

    我把数据类型改回narchar 才打得开,晕死