时间是:2006-4-6 17:24:01
SQL语句中怎样将此时间转换为:2006-4-6或2006-04-06
还有如何转换成:2006-04或2006-4
这里要求是时间格式,不是字符串格式,主要是用于比较时间。谢谢!

解决方案 »

  1.   

    select convert(varchar(10), getdate(), 121)
    select convert(varchar(7), getdate(), 121)
    时间格式,不是字符串格式???数据库里面记录时间是一实数的形式记载的,以一种固定格式显示给用户看,你要想显示不同必须转换成字符串
      

  2.   

    可能是我表达不是很清楚,输入是字符串2006-4-6 17:24:01,在sql中将该字符串转换成短时间格式进行判断
      

  3.   

    那再转回去
    select cast(convert(varchar(10), getdate(), 121) as datetime)
    select cast(convert(varchar(7), getdate(), 121) + '-01' as datetime)
      

  4.   

    Declare @GradeTime varchar(50)
    set @GradeTime = '2006-02'
    Delete T_IntegralEmp Where CONVERT(varchar(7),GradeTime,121) = CONVERT(varchar(7),@GradeTime,121)提示错误:从字符串转换为 datetime 时发生语法错误
      

  5.   

    我的好像有个 + '-01' 
    select cast(convert(varchar(7), getdate(), 121) + '-01' as datetime)
    ---------------------------121是什么意思?
    看convert的帮助
      

  6.   

    LZ的那个实际上是执行时,是:
     CONVERT(varchar(7),cast(GradeTime as datetime),121)而'2006-02'不是系统能够认识的时间字符串,所以报错