asp.net代码如下:
function txtvalue(obj)
{
    var todayDate = new Date();
obj.value =todayDate.getHours()+":"+todayDate.getMinutes()+":"+todayDate.getSeconds();
}
然后:
INPUT id="txt_time" type="text" size="16" name="Text1" runat="server" onclick="txtvalue(this)" >
调用存储过程如下
cm.Parameters.Add("@bugtime",SqlDbType.DateTime);
cm.Parameters["@bugtime"].Value =this.txt_time.Value.ToString();
CREATE procedure bugadd
(@bugtime[varchar](30)='',
)
as
 insert into [devicemanagement].[dbo].[bugrecord]

[bugtime]
)
values
(
cast(@bugtime as datetime)
)
GO
执行以后,发现sqlserver中插入的值不是hh:mm:ss的格式,而是当前日期yyyy-mm-dd hh:mm:ss的格式,我在程序里测试了这个值,是hh:mm:ss,高手帮忙啊!具体为什么阿,顺便问一下,我在asp.net中插入这个值得时候,想在sqlserver中看这个值,用了 print怎么不打印阿

解决方案 »

  1.   

    估计是cast(@bugtime as datetime)的问题,你要想只保留hh:mm:ss的格式,干脆用Varchar的算了,用datetime的就是yyyy-mm-dd hh:mm:ss的格式
      

  2.   

    应该是cast(@bugtime as datetime)的问题,你为什么不把这句@bugtime[varchar](30)=''改成@bugtime datatime类型呢,这样在程序里面直接传一个datetime值就可以了,就应该不回出现那个问题了,
    至于你的第二个问题是因为print只在查询分析器中运行时才能显示,如果你想要查看这个值的话我建议你用输出参数的形式,@ddd varchar(40) output,然后在存储过程中给他付值,在客户端得到并显示出来就可以了
      

  3.   

    把cm.Parameters.Add("@bugtime",SqlDbType.DateTime);改成cm.Parameters.Add("@bugtime",SqlDbType.Varchar);试试
      

  4.   

    我想你们可能说得对,但是我直接用insert插入,值就是对得,这是为什么阿
      

  5.   

    你数据库该字段的type设置成什么的啊,如果设成datetime的,那当然会现实yyyy-MM-dd 的啊