如何将内容为“2009-07-31 08:06:04.640”的时间字段在保留时间类型的前提下转化为“2009-07-31”的日期格式?

解决方案 »

  1.   

    select convert(varchar(10),'2009-07-31 08:06:04.640',120)
    /*
    ----------
    2009-07-31(1 個資料列受到影響)
    */
      

  2.   

    select convert(varchar(10),'2009-07-31 08:06:04.640',120)
      

  3.   


    select convert(varchar(10),'2009-07-31 08:06:04.640',120)
      

  4.   

    select convert(varchar(10),'2009-07-31 08:06:04.640',20)
               
    ---------- 
    2009-07-31(所影响的行数为 1 行)
      

  5.   

    --日期转换参数,值得收藏
    select CONVERT(varchar, getdate(), 120 )
    2004-09-12 11:06:08select 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
      

  6.   

    楼上的都变成varchar类型了。。
    我要保留datetime类型的,因为后面绑定控件后要做时间段排列查询
      

  7.   

    select CONVERT(DATETIME,convert(varchar(10),'2009-07-31 08:06:04.640',20))
               
                                                           
    ------------------------------------------------------ 
    2009-07-31 00:00:00.000(所影响的行数为 1 行)
      

  8.   


    05 也有。datetime 类型,在于 longtime 和 shorttime 之分。
      

  9.   

    我是用2005的,确实也只有一个DATETIME的类型。。而且不管我有没有在这个字段中输入时间内容,该字段都会自动将空白的时间位置的数据给填充了。将整个字段全部显示的话时间的内容又会显的比较冗长、而且比较难看。。
      

  10.   


    我就是用05,如何设置shorttime 呢?
      

  11.   


    O.O 不是,是mssql2005.。这点常识我还是有的。
      

  12.   

    恩,没错,那家伙什么都在vs下做的,BS一下他
    不过,他的是VS2010...BATA2...
      

  13.   

    create table #( tian date)
    insert # values ('2009-07-31 08:06:04.640')
    select * from #
    /*
    tian
    ----------
    2009-07-31*/
    2008有
    2005测试版的时候有 后来在发布出来后好像没独立出来哦
      

  14.   

    sorry,说错了,2008下确实是可行的
    declare @tb table(ddate date);insert into @tb
    select '2009-11-03 01:02:03'select * from @tbddate
    ----------
    2009-11-03(1 行処理されました)
      

  15.   

    --日期转换参数,值得收藏
    select CONVERT(varchar, getdate(), 120 )
    2004-09-12 11:06:08select 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
    你可以先在查询分析器中先测试格式化后的数据,然后再进行函数的使用皆可!
      

  16.   

    1、方法一
    select convert(left("2009-07-31 08:06:04.640",10),getdate(),120)
    2、方法二
    select replace(convert("2009-07-31 08:06:04.640",getdate(),120),'08:06:04.640','')