假如现在的时间是:2013-10-15 10:38:20.070(select getdate())
想写个sql 语句,能够对现在的时间进行判断,把现在的时间转换成整点的时间:2013-10-15 10:00:00.000sql时间 截取

解决方案 »

  1.   


    select cast(convert(varchar(20),getdate(),111)+' '+rtrim(datepart(hh,getdate()))+':00:00' as datetime) '整点时间'/*
    整点时间
    -----------------------
    2013-10-15 10:00:00.000(1 row(s) affected)
    */
      

  2.   


    select convert(varchar(50),getdate(),23)+' '+datename(HH,getdate())+':00:00' as time
    -----------------------------------------
    2013-10-15 11:00:00
      

  3.   

    时间转换的格式
    convert(varchar(50),getdate(),XXX)一直记不住
      

  4.   

    Select CONVERT(varchar(100), GETDATE(), 0)--05 16 2006 10:57AM
    Select CONVERT(varchar(100), GETDATE(), 1)--05/16/06
    Select CONVERT(varchar(100), GETDATE(), 2)--06.05.16
    Select CONVERT(varchar(100), GETDATE(), 3)--16/05/06
    Select CONVERT(varchar(100), GETDATE(), 4)--16.05.06
    Select CONVERT(varchar(100), GETDATE(), 5)--16-05-06
    Select CONVERT(varchar(100), GETDATE(), 6)--16 05 06
    Select CONVERT(varchar(100), GETDATE(), 7)--05 16, 06
    Select CONVERT(varchar(100), GETDATE(), 8)--10:57:46
    Select CONVERT(varchar(100), GETDATE(), 9)--05 16 200610:57:46:827AM
    Select CONVERT(varchar(100), GETDATE(), 10)--05-16-06
    Select CONVERT(varchar(100), GETDATE(), 11)--06/05/16
    Select CONVERT(varchar(100), GETDATE(), 12)--060516
    Select CONVERT(varchar(100), GETDATE(), 13)--16 05 2006 10:57:46:937
    Select CONVERT(varchar(100), GETDATE(), 14)--10:57:46:967
    Select CONVERT(varchar(100), GETDATE(), 20)--2006-05-16 10:57:47
    Select CONVERT(varchar(100), GETDATE(), 21)--2006-05-16 10:57:47.157
    Select CONVERT(varchar(100), GETDATE(), 22)--05/16/06 10:57:47 AM
    Select CONVERT(varchar(100), GETDATE(), 23)--2006-05-16
    Select CONVERT(varchar(100), GETDATE(), 24)--10:57:47
    Select CONVERT(varchar(100), GETDATE(), 25)--2006-05-16 10:57:47.250
    Select CONVERT(varchar(100), GETDATE(), 100)--05 16 2006 10:57AM
    Select CONVERT(varchar(100), GETDATE(), 101)--05/16/2006
    Select CONVERT(varchar(100), GETDATE(), 102)--2006.05.16
    Select CONVERT(varchar(100), GETDATE(), 103)--16/05/2006
    Select CONVERT(varchar(100), GETDATE(), 104)--16.05.2006
    Select CONVERT(varchar(100), GETDATE(), 105)--16-05-2006
    Select CONVERT(varchar(100), GETDATE(), 106)--16 05 2006
    Select CONVERT(varchar(100), GETDATE(), 107)--05 16, 2006
    Select CONVERT(varchar(100), GETDATE(), 108)--10:57:49
    Select CONVERT(varchar(100), GETDATE(), 109)--05 16 200610:57:49:437AM
    Select CONVERT(varchar(100), GETDATE(), 110)--05-16-2006
    Select CONVERT(varchar(100), GETDATE(), 111)--2006/05/16
    Select CONVERT(varchar(100), GETDATE(), 112)--20060516
    Select CONVERT(varchar(100), GETDATE(), 113)--16 05 2006 10:57:49:513
    Select CONVERT(varchar(100), GETDATE(), 114)--10:57:49:547
    Select CONVERT(varchar(100), GETDATE(), 120)--2006-05-16 10:57:49
    Select CONVERT(varchar(100), GETDATE(), 121)--2006-05-16 10:57:49.700
    Select CONVERT(varchar(100), GETDATE(), 126)--2006-05-16T10:57:49.827
    Select CONVERT(varchar(100), GETDATE(), 130)--18 ???? ?????? 142710:57:49:907AM
    Select CONVERT(varchar(100), GETDATE(), 131)--18/04/142710:57:49:920AM
      

  5.   

    不是直接用 CONVERT(varchar(13), GETDATE(), 121) 就OK了吗- -搞那么复杂是为什么?初学数据库求指导
      

  6.   

    这个方法避免了字符串与日期的转换,不知道速度如何:
    declare @d datetime = '2013-10-15 10:38:20.070'
    select DATEADD(hh,datepart(hh,@d),convert(decimal,@d))
      

  7.   


    select dateadd(hh,datediff(hh,'19000101',getdate()),'19000101')
      

  8.   

     CONVERT(varchar(13), GETDATE(), 121)