不知道怎么转的。郁闷。我也很奇怪能用dateadd把int型的数转成了日期格式。必须要知道怎么转的才能update吗?

解决方案 »

  1.   

    不知道怎么转的当然不能随便乱搞了。下面这一句是你自己写出来的呢,还是在存储过程或函数里面看到的:
    select dateadd((ss), a.zsdate,'1970-01-01 08:00:00') as zsdate from table1 a
      

  2.   

    select dateadd(ss, a.zsdate,'1970-01-01 08:00:00') as zsdate from table1 a
    --你说返回的结果是:2008-04-19 00:00:00select dateadd(ss,1208361600,'1970-01-01 08:00:00')
    --为何这里返回:2008-04-17 00:00:00.000
      

  3.   

    我把返回结果拷贝错了。我是同时用两条数据做的测试。select dateadd((ss), a.zsdate,'1970-01-01 08:00:00') as zsdate from table1 a 这个是我自己写的,存储过程里没有。
    为什么能从int转到日期格式查看,就不能把日期格式转成INT呢。有没有可能日期转INT是在存储过程里写的?
      

  4.   

    你看看代码,看是怎么转成整型的。我估计这个整型是输入的时间与'1970-01-03 20:00:00.000'相差的妙数:select dateadd(ss,1208361600,'1970-01-03 20:00:00.000')
    --2008-04-19 12:00:00.000多做几个测试,不过最好是看源代码是怎么转的
      

  5.   

    关键是我不知道这个源代码写在哪了,这套系统是一套成型的产品,后台都封装了。老兄你怎么一眼就能看出是相差的秒数啊,真是高人,有这样的函数可以算两个时间之间相差的秒数吗。DATEPART能算出来吗?
      

  6.   

    有这样的函数可以算两个时间之间相差的秒数吗。 
    -----------------------------------------有: datediff 函数
    select datediff(second,'1970-01-03 20:00:00.000','2008-04-19 12:00:00.000')
    得到:1208361600--这个把整型再逆回去:
    select dateadd(second,1208361600,'1970-01-03 20:00:00.000')
    --得到:2008-04-19 12:00:00.000--我不是什么高人,你自己写了这条语句,所以我这样猜
    select dateadd((ss), a.zsdate,'1970-01-01 08:00:00') as zsdate from table1 a