select convert(nvarchar(8),getdate(),120)+'01'

解决方案 »

  1.   

    select cast(convert(nvarchar(8),getdate(),120)+'01' as datetime)
      

  2.   

    select cast(convert(nvarchar(8),getdate(),120)+'01' as datetime)
      

  3.   

    select  convert(datetime,convert(varchar(7),getdate(),120)+'-1 0:0:0')
      

  4.   

    delcare @DateStr nvarchar(20)select @DateStr=cast(year(getdate() as nvarchar(4)) + '-' + month(getdate() as nvarchar(2)) + '-01'+ ' 00:00:00'
      

  5.   

    通过MONTH ( date )和DAY ( date )分别得到月, 日.
    然后再相加(如下), 不过楼主的要求"我需要判断每月1号0点0分之前的信息"不明白。可能表述有问题。
    比如说有一条记录是6月2号的, 那这条记录相对于6月1号,它在6月1号之前, 相对于5月1号它在5月1号之后。那到底选不选呢?
    declare @dtime datetime
    declare @str varchar(20)
    set @dtime=getdate()
    set @str='2005'+'-'+convert(varchar(2), month(@dtime))+'-'+
    convert(varchar(2), day(@dtime))
    print @str
    set @dtime=convert(datetime, @str)
    print @dtime
      

  6.   

    我估计这个效率最高SEELCT DATEADD(mm,DATEDIFF(mm,'1900-1-1',getdate()),'1900-1-1')
      

  7.   

    good2speed(Goodspeed) 的算法好经典,又学一招