有一个文本字段作为标识,在access中是这样写的:"i" + DateDiff('d','2000-1-1',Now()) + "-" + Int(Timer()*1000)请教升级到 sql server 怎么写?
 
光写 (datediff(day,(2000 - 1 - 1),getdate())) 是可以实现的,一旦加上 'i' + ……
sql就会自动加上 (N'多谢!!!

解决方案 »

  1.   


    select 'i'+cast(datediff(day,(2000 - 1 - 1),getdate())as varchar(20))
    ---------------------
    i38053
    ??
      

  2.   

    select 'i'+cast(datediff(day,(2000 - 1 - 1),getdate()) as varchar(10))+'_'/*---------------
    i38053_
    (1 行受影响)
    */datediff返回的是int型
      

  3.   

    谢谢楼上两位,试验了一下不行啊。我说的是企业管理器中设计表,给字段设置默认值,输入上面的 又会变成 (N'select ''i''+cast(datediff(day,(2000 - 1 - 1),getdate()) as varchar(10))+''_''') 
    ,不能得到运行结果。
      

  4.   


    谢谢诸位!
    类型转换后可以了,再问一下 Int(Timer()*1000) 在sql中怎么写呢?
      

  5.   

     OK,搞定了,谢谢大家。convert(varchar(10),DATEPART(ms, GETDATE())))