datetime类型的字段 例2001-01-02 00:13:28
如何只取出2001-01-02部分,仍保持其类型为datetime
convert转换成了字符串,在程序中处理很不方便

解决方案 »

  1.   

    cast(convert(char(10),dt,120) as datetime)
      

  2.   

    select convert(varchar(10),cast('2001-01-02 00:13:28' as datetime),120)/*
               
    ---------- 
    2001-01-02(所影响的行数为 1 行)*/
      

  3.   

    select convert(char,cast('2001-01-02 00:13:28' as datetime),23)
      

  4.   

    还想成datetime?select cast(convert(varchar(10),cast('2001-01-02 00:13:28' as datetime),120) as datetime)/*
               
                                                           
    ------------------------------------------------------ 
    2001-01-02 00:00:00.000(所影响的行数为 1 行)
    */
      

  5.   

    如果这样,建议升到2008用单独的DATE型吧,2008以下要混合。
      

  6.   

    select dateadd(day,datediff(day,0,'2001-01-02 00:13:28'),0)or
    select cast(convert(char(10),'2001-01-02 00:13:28',120) as datetime)
    -----------------------
    2001-01-02 00:00:00.000(1 行受影响)
      

  7.   

    select Convert(varchar(10),getdate(),120)
      

  8.   

    select convert(datetime,left('2001-01-02 00:13:28', 10),120)