insert into tbl_store
(
productId,
productName,
productDate
)
select @productID,@productName,case when @productDate='' then null else cast(@productDate as datetime) end

解决方案 »

  1.   

    cast(@ProductDate as datetime) 把这个作为参数传,不想存时间就传null
      

  2.   

    To:didoleo(冷月无声)
    用你的方法,还是插入的1900-1-1
      

  3.   

    create table #test
    (mydate datetime)
    declare @a varchar(10)
    set @a=''
    insert into #test select case when @a='' then null else cast(@a as datetime) endselect * from #test2005-01-31 00:00:00.000
    NULL
      

  4.   

    我认为上面的方法已经行了,实在不行的话,就用这好了(比较麻烦)
    if productDate is null
    begin
    insert into tbl_store
    (productId,productName,)
    values(@productId,@productName)
    end 
    else
    begin
    insert into tbl_store
    (productId,productName,productDate)
    values(@productId,@productName,cast(@ProductDate as datetime))
    end 
      

  5.   

    create table tmp
    (
    productId int,
    productName varchar(10),
    productDate datetime
    )declare @productid int ,@productname varchar(10),@productdate datetime
    select @productid=1,@productname='asdfas',@productdate=nullinsert into tmp
    (
    productId,
    productName,
    productdate
    )
    select @productid,@productname,
      case when @productdate is null then null else @productdate endselect * from tmp