可以通过DATEPART(datepart,date)获取时间中的年月日时分秒值,
如果某字段类型是datetime,值为 '2012-04-10 01:00:59'
是否办法将日期和时间分离。且分离后的结果类型都还是datetime 

解决方案 »

  1.   

    把日期取出来
    convert(char(10),'2012-04-10 01:00:59',120)
    时间的话,对字符串进行截取即可
      

  2.   

    select CONVERT(varchar(12) , getdate(), 108 ) 11:06:08这个是时间
      

  3.   

    select CONVERT(varchar(12) , getdate(), 110 )  这个是日期
      

  4.   

    你这个是在getdate()时进行格式化了,我现在的时间'2012-04-10 01:00:59'已在表中保存,是需要对表中的数据进行处理
      

  5.   

    截取后不是再是DATETIME类型吧 
      

  6.   

    你是在什么代码里面用?
     如果是C#里面 你可以这样写
                    string date =DateTime.Now.ToShortDateString();        这个是获取日期的
                    string time = DateTime.Now.ToShortTimeString();     这个是获取时间的
      

  7.   

    2008及以上可以:
    select cast(CONVERT(varchar(10),CURRENT_TIMESTAMP,120) as DATE)
    select CAST(CONVERT(varchar(8),CURRENT_TIMESTAMP,14) as time)
      

  8.   

    declare @riqi datetime='2012-04-10 01:00:59'
    select cast(CONVERT(varchar(10),@riqi,120) as DATE)
    select CAST(CONVERT(varchar(8),@riqi,14) as time)-----------------------------
    2012-04-1001:00:59.0000000
      

  9.   

    select CONVERT(varchar(10) , '2012-04-10 16:31:32' ,120) --2012-04-10
    select right(CONVERT(varchar(20) , '2012-04-10 16:31:32'),8) --16:31:32
      

  10.   

    select CONVERT(varchar(10) , '2012-04-10 16:31:32' ,120) --2012-04-10
    select right(CONVERT(varchar(20) , '2012-04-10 16:31:32'),8) --16:31:32select DateDiff(hh,'18:00:00',right(CONVERT(varchar(20),'2012-04-10 16:31:32'),8))
    select DateDiff(d,'2012-04-1',CONVERT(varchar(10) , '2012-04-10 16:31:32' ,120))