DECLARE @当前时间 datetime
  set @当前时间 = GETDATE()
  insert into TAH select * from TA where 首次受理时刻<=(@当前时间-30)
  delete from TA where 首次受理时刻<=(@当前时间-30)我写在作业里面的SQL语句!现在发现问题,GETDATE()是个不一定的函数,每次得到的时间是不一样的.
我这么取会不会有遗漏.我定在每天夜间4点执行.
求一个最好的语句!!!谢谢!!!

解决方案 »

  1.   

    @当前时间 = convert ( datetime, convert( varchar(10), getdate(),101))
      

  2.   

    你看看这两个函数 dateadd ,datediff
      

  3.   

    popboyme() 
    小生测试了您的语句,实现了功能。但是我不明白,怎么使小时部分变为00:00:000的。
    能否解释一下。
      

  4.   

    convert( varchar(10), getdate(),101)这个函数把当前时间变成字符串,并且截取了前十个字符,就只剩下日期部分了;
    然后把这个字符串再转化成datetime数据类型时,由于缺少时间部分,就用默认值00:00:000了