比如一个表里有个date字段,用select查询,它的数据是:2009-6-1,现在想把它转换为20090601这种格式,也就是说凡是一位数的月份或者日期都在前面补一个0使其成为两位数的,若已经是2位数的就不用了,像2009-12-12就转为20091212即可,这个能否用sql语句来实现?

解决方案 »

  1.   

    SELECT CONVERT(DATETIME,[DATE],112)
      

  2.   

     select  CONVERT(varchar, getdate(), 112)
      

  3.   

    SELECT CONVERT(VARCHAR(20),GETDATE(),112)
      

  4.   

     select  CONVERT(varchar, date,112) as date
    from 你的表
      

  5.   

    --*******************************************************************************
    --                            日期转换参数大全
    --********************************************************************************
    select CONVERT(varchar,getdate(),120)
    --2009-03-15 15:10:02select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
    --20090315151201select CONVERT(varchar(12) , getdate(), 111)
    --2009/03/15select CONVERT(varchar(12) , getdate(), 112)
    --20090315select CONVERT(varchar(12) , getdate(), 102)
    --2009.03.15select CONVERT(varchar(12) , getdate(), 108)
    --15:13:26其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )
    --03/15/2009select CONVERT(varchar(12) , getdate(), 103 )
    --15/03/2009select CONVERT(varchar(12) , getdate(), 104 )
    --15.03.2009select CONVERT(varchar(12) , getdate(), 105 )
    --15-03-2009select CONVERT(varchar(12) , getdate(), 106 )
    --15 03 2009select CONVERT(varchar(12) , getdate(), 107 )
    -- 15, 2009select CONVERT(varchar(12) , getdate(), 109 )
    --03 15 2009  select CONVERT(varchar(12) , getdate(), 110 )
    --03-15-2009select CONVERT(varchar(11) , getdate(), 113 )
    --15 03 2009 select CONVERT(varchar(12) , getdate(), 114)
    --15:15:55:717
      

  6.   

    我给你转化的资料Select    CONVERT(varchar, getdate(), 1),--mm/dd/yy    
    CONVERT(varchar, getdate(), 2),--yy.mm.dd     
    CONVERT(varchar, getdate(), 3),--dd/mm/yy     
    CONVERT(varchar, getdate(), 4),--dd.mm.yy     
    CONVERT(varchar, getdate(), 5),--dd-mm-yy     
    CONVERT(varchar, getdate(), 10),--mm-dd-yy     
    CONVERT(varchar, getdate(), 11),--yy/mm/dd         
    CONVERT(varchar, getdate(), 12),--yymmdd
        ----带世纪号 
    select convert(varchar(10),getdate(),100) --06 15 2007 或0
    select convert(varchar(10),getdate(),102) --2007.06.15
    select convert(varchar(10),getdate(),103) --15/06/2007
    select convert(varchar(10),getdate(),104) --15.06.2007
    select convert(varchar(10),getdate(),105) --15-06-2007
    select convert(varchar(10),getdate(),106) --15 06 2007
    select convert(varchar(10),getdate(),107) --06-15,200
    select convert(varchar(10),getdate(),108) --10:06:46 当前时间
    select convert(varchar(10),getdate(),109) --06 15 2007 或者9
    select convert(varchar(10),getdate(),110) --06-15-2007
    select convert(varchar(10),getdate(),111) --2007/06/15
    select convert(varchar(10),getdate(),112) --20070615
    select convert(varchar(10),getdate(),113) --15 06 2007 或者13
    select convert(varchar(10),getdate(),114) --10:10:37:0
    select convert(varchar(10),getdate(),120) --2007-06-15 或20
    select convert(varchar(30),getdate(),121) --2007-06-15 10:11:45.040 或21
    select convert(varchar(30),getdate(),126) --2007-06-15T10:12:44:603
    select convert(varchar(50),getdate(),127) --2007-06-15T10:14:35:433 说带时区
    select convert(varchar(40),getdate(),130) --回历dd mon yyyy hh:mi:ss:mmmAM
    select convert(varchar(30),getdate(),131) --30/05/1428 10:17:19:470AMGO
      

  7.   

    select convert(varchar(8),getdate(),112)
    20090621
    select CONVERT(varchar(12) , getdate(), 112 )
    20090621
      

  8.   

    --如果你那个字段是字符类型的,要把它先转成datetime类型
    select CONVERT(varchar(12) , cast('2009-6-1' as datetime), 112)
    /*
    20090601
    */
      

  9.   

    我给你转化的资料 Select    CONVERT(varchar, getdate(), 1),--mm/dd/yy     
    CONVERT(varchar, getdate(), 2),--yy.mm.dd     
    CONVERT(varchar, getdate(), 3),--dd/mm/yy     
    CONVERT(varchar, getdate(), 4),--dd.mm.yy     
    CONVERT(varchar, getdate(), 5),--dd-mm-yy     
    CONVERT(varchar, getdate(), 10),--mm-dd-yy     
    CONVERT(varchar, getdate(), 11),--yy/mm/dd         
    CONVERT(varchar, getdate(), 12),--yymmdd 
        ----带世纪号 
    select convert(varchar(10),getdate(),100) --06 15 2007 或0 
    select convert(varchar(10),getdate(),102) --2007.06.15 
    select convert(varchar(10),getdate(),103) --15/06/2007 
    select convert(varchar(10),getdate(),104) --15.06.2007 
    select convert(varchar(10),getdate(),105) --15-06-2007 
    select convert(varchar(10),getdate(),106) --15 06 2007 
    select convert(varchar(10),getdate(),107) --06-15,200 
    select convert(varchar(10),getdate(),108) --10:06:46 当前时间 
    select convert(varchar(10),getdate(),109) --06 15 2007 或者9 
    select convert(varchar(10),getdate(),110) --06-15-2007 
    select convert(varchar(10),getdate(),111) --2007/06/15 
    select convert(varchar(10),getdate(),112) --20070615 
    select convert(varchar(10),getdate(),113) --15 06 2007 或者13 
    select convert(varchar(10),getdate(),114) --10:10:37:0 
    select convert(varchar(10),getdate(),120) --2007-06-15 或20 
    select convert(varchar(30),getdate(),121) --2007-06-15 10:11:45.040 或21 
    select convert(varchar(30),getdate(),126) --2007-06-15T10:12:44:603 
    select convert(varchar(50),getdate(),127) --2007-06-15T10:14:35:433 说带时区 
    select convert(varchar(40),getdate(),130) --回历dd mon yyyy hh:mi:ss:mmmAM 
    select convert(varchar(30),getdate(),131) --30/05/1428 10:17:19:470AM GO UP
      

  10.   

     if OBJECT_ID('tb') is not null 
    drop table tb 
    create table tb(tdate datetime) 
    insert into tb values('2009-8-1')
    insert into tb values('2009-5-11')
    insert into tb values('2009-08-1')
    insert into tb values('2009-12-1')
    insert into tb values('2009-10-11')
    insert into tb values('2009-8-11')select CONVERT(varchar,tdate, 112) as tdate
    from tb
    /*---------------
    20090801
    20090511
    20090801
    20091201
    20091011
    20090811
    ----------*/
      

  11.   

    if OBJECT_ID('tb') is not null 
    drop table tb 
    create table tb(tdate datetime) 
    insert into tb values('2009-8-1') 
    insert into tb values('2009-5-11') 
    insert into tb values('2009-08-1') 
    insert into tb values('2009-12-1') 
    insert into tb values('2009-10-11') 
    insert into tb values('2009-8-11') select CONVERT(varchar,tdate, 112) as tdate 
    from tb 
    /*--------------- 
    20090801 
    20090511 
    20090801 
    20091201 
    20091011 
    20090811 
    ----------*/
      

  12.   

    --日期转换参数,值得收藏
    select CONVERT(varchar, getdate(), 120)
    2004-09-12 11:06:08select convert(varchar(10),getdate() ,120)  
    ----------
    2009-04-09select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
    20040912110608select CONVERT(varchar(12) , getdate(), 111 )
    2004/09/12select CONVERT(varchar(12) , getdate(), 112 )
    20040912select CONVERT(varchar(12) , getdate(), 102 )
    2004.09.12其它我不常用的日期格式转换方法:select CONVERT(varchar(12) , getdate(), 101 )
    09/12/2004select CONVERT(varchar(12) , getdate(), 103 )
    12/09/2004select CONVERT(varchar(12) , getdate(), 104 )
    12.09.2004select CONVERT(varchar(12) , getdate(), 105 )
    12-09-2004select CONVERT(varchar(12) , getdate(), 106 )
    12 09 2004select CONVERT(varchar(12) , getdate(), 107 )
    09 12, 2004select CONVERT(varchar(12) , getdate(), 108 )
    11:06:08select CONVERT(varchar(12) , getdate(), 109 )
    09 12 2004 1select CONVERT(varchar(12) , getdate(), 110 )
    09-12-2004select CONVERT(varchar(12) , getdate(), 113 )
    12 09 2004 1select CONVERT(varchar(12) , getdate(), 114 )
    11:06:08.177