小弟对存储过程知识很差,目前通过语句已经完成了一个查询。
查询结果为1列,类型为datetime,精确到秒,每行的数据日期都是不同的。现在想实现以下的功能的存储过程:
添加一个列,此列的数据为第一列的数据到该天的23:59分的时间差。如第一列数据为2010-4-12 8:21:23
第二列数据为2010-4-12 8:21:23到2010-4-12 23:59:59的时间差,精确到小数点后3位。肯定各位帮忙

解决方案 »

  1.   

    select convert(varchar(20),dateadd(ms,
    datediff(ms,'2010-4-12 8:21:23',dateadd(ss,-1,dateadd(dd,1,'2010-4-12'))),
    0),108)--------------------
    15:38:36(1 行受影响)返回啥?
      

  2.   

    CREATE PROC P
    AS
      SELECT TIME, convert(varchar(20),dateadd(SS,
    datediff(SS,TIME,dateadd(ss,-1,dateadd(dd,1,CONVERT(VARCHAR(10),TIME,120)))),
    0),108)
    FROM TB 
      

  3.   

    create table yy(时间 datetime)
    insert into yy values('2010-4-12 8:21:23')
    CREATE PROC P
    AS
      SELECT 时间, convert(varchar(20),dateadd(SS,
    datediff(SS,时间,dateadd(ss,-1,dateadd(dd,1,CONVERT(VARCHAR(10),时间,120)))),
    0),108) as 时间差
    FROM yy 
    drop table yy
      

  4.   

    create table yy(时间 datetime)
    insert into yy values('2010-4-12 8:21:23')
    CREATE PROC P
    AS
      SELECT 时间, convert(varchar(20),dateadd(SS,
    datediff(SS,时间,dateadd(ss,-1,dateadd(dd,1,CONVERT(VARCHAR(10),时间,120)))),
    0),108) as 时间差
    FROM yy 
    drop table yy
      

  5.   

    楼上的这个对我来说更加实用啊,请问能转换成dicimal吗?
      

  6.   

    查询出来的时间差转换成decimal