如题,想实现数据表内时间和系统当前时间比对并相减,将差值小于80天的数据插入到一个新表内,如何实现!比较麻烦的是,数据库表内的时间是字符串形式的,例如:200908180830000,后三位是随机加的,而且这个表的字段还不能随便改,请问怎么实现呢?表如下:
name        time
test1  200901180830000 
test2  200904300921123
test3  200905011420321目前系统时间是2009年5月18日 那么和time字段的前八位比较后两条记录符合条件,插入到一个新表请帮忙看看!

解决方案 »

  1.   

    select * into #
    from tbname
    where datediff(day,left([time],8),convert(char(10),getdate(),120))<=80
      

  2.   

    --TRY
    SELECT NAME,TIME, DATEDIFF(DD,LEFT(TIME,8),GETDATE()) FROM TB WHERE DATEDIFF(DD,LEFT(TIME,8),GETDATE()) <80
      

  3.   

    求差值
    select datediff(dd,cast('20090118'  as datetime),getdate())
    --120
      

  4.   


    SELECT * INTO #TB
    FROM TBNAME 
    WHERE DATEDIFF(DAY,LEFT([TIME],8),CONVERT(CHAR(10),GETDATE(),120))<=80
      

  5.   

    select datediff(dd,CONVERT(datetime,LEFT([TIME],8),120),getdate())<80 
      

  6.   

    select * into t
    from tbname
    where datediff(day,left([time],8),convert(char(10),getdate(),120))<=80
      

  7.   

    新表 B
    源表A    差值小于80 SELECT NAME, TIME 
    FROM A WHERE ABS(DATEDIFF(DAY,CAST(LEFT(TIME,8) AS SMALLDATETIME,GETDATE()))) < 80 
      

  8.   

    上面要改下:括号弄错了。
    INSERT INTO A ([NAME],[TIME])
    SELECT [NAME], [TIME] 
    FROM A WHERE ABS(DATEDIFF(DAY,CAST(LEFT([TIME],8) AS SMALLDATETIME),GETDATE())) < 80