create table #tmp
(
telno       varchar(20)   null,
  smscontent  varchar(255)  null,
  senttime    datetime      null,
  status      smallint      null
)
这个是建立表的语句select telno,smscontent,substring(convert(varchar,senttime,112),1,4)+'-'+substring(convert(varchar,senttime,112),5,2)+'-'+substring(convert(varchar,senttime,112),7,2)+' '+convert(varchar,senttime,108) senttime,status from #tmp 
这个是查询语句substring(convert(varchar,senttime,112),1,4)+'-'+substring(convert(varchar,senttime,112),5,2)+'-'+substring(convert(varchar,senttime,112),7,2)+' '+convert(varchar,senttime,108) senttime问题是, 这么长长的一句我没看懂,   谁能解释下, 谢谢. 本人不弄数据库的,问的浮浅了.

解决方案 »

  1.   

    select convert(varchar,senttime,120)
    这样就好了
      

  2.   

    从最里边看啊!
    先把senttime 转成字符类型(注 112 是一时间转出后的一表形势 例,20100824),然后就开始截取字符串,从第一位开始截取,截4位。也就是把年份截取出来啊!
      

  3.   

    应该是为了把datetime类型转换成varchar类型。
    具体估计后面算法或者调用会用到才这样转变的,具体用意要看下文才清楚。
      

  4.   

    看上去在做日期字符串拼接格式化
    把日期格式转成 YYYY-MM-DD的字符串格式 贴个结果看看
    DECLARE @date DATETIME
    SET @date='2010-8-1 17:00'
    SELECT 
    substring(convert(varchar,@date,112),1,4)+'-'+
    substring(convert(varchar,@date,112),5,2)+'-'+
    substring(convert(varchar,@date,112),7,2)+' '+
    convert(varchar,@date,108) senttime
    --result
    --2010-08-01 17:00:00
      

  5.   

    substring(convert(varchar,senttime,112),1,4)+'-'+substring(convert(varchar,senttime,112),5,2)+'-'+substring(convert(varchar,senttime,112),7,2)+' '+convert(varchar,senttime,108) senttime生成日期格式:四位年-两位月-两位日 HH:MM:ss
      

  6.   

    ^_^,谢谢各位拉 ,确实是:四位年-两位月-两位日 HH:MM:ss 这样的格式
    结贴给分