none
Sql Server中怎样用日期(date)和时间(time)加减组合操作? RRS feed

  • 问题

  • 比如‘2011-10-01’与‘1900-01-01 09:00:00’ 组合起来等于 ‘2011-10-01 09:00:00’ 有什么操作呢?
    过好今天!
    2011年12月8日 2:45

答案

  • 这样是不是会觉得简便一些:

    declare @t1 datetime,@t2 datetime
    select @t1='2011-10-01',@t2='1900-01-01 09:00:00'
    
    select convert(varchar(10),@t1,120)+' '+convert(varchar(8),@t2,108)
    
    /*
    2011-10-01 09:00:00
    */
    

     

    2011年12月18日 7:58
    版主

全部回复

  • Try dateadd function.
    2011年12月8日 3:26
  • declare @BeginTime2 datetime
    Declare @endTime2 datetime
    declare @RecordDate datetime
    set @BeginTime='09:00:00'
    set @endTime='17:10:00'
    set @RecordDate='2011-1-1'
    set  @endTime2 =DATEADD(MINUTE,DATEPART(MINUTE,@EndTime), DATEADD(HH,DATEPART(HH,@EndTime),@RecordDate))
    --set  @BeginTime2= DATEADD(MINUTE,DATEPART(MINUTE,@BeginTIme), DATEADD(HH,DATEPART(HH,@BeginTIme),@RecordDate))
    select  @RecordDate,@endTime2,@BeginTime2

    这样是可以但是太麻烦了吧?有更简单的吗?


    过好今天!
    2011年12月8日 3:32
  • 这样是不是会觉得简便一些:

    declare @t1 datetime,@t2 datetime
    select @t1='2011-10-01',@t2='1900-01-01 09:00:00'
    
    select convert(varchar(10),@t1,120)+' '+convert(varchar(8),@t2,108)
    
    /*
    2011-10-01 09:00:00
    */
    

     

    2011年12月18日 7:58
    版主
  • datetime支持隐式转换,那最简单的应该是这种了:

    declare @t1 datetime,@t2 datetime
    select @t1='2011-10-01',@t2='1900-01-01 09:00:00'
    select @t1+@t2
    /*
    2011-10-01 09:00:00
    */
    

     

    2011年12月18日 8:01
    版主
  • 比如‘2011-10-01’与‘1900-01-01 09:00:00’ 组合起来等于 ‘2011-10-01 09:00:00’ 有什么操作呢?
    过好今天!
    declare @t1 datetime,@t2 datetime
    select @t1='2011-10-01',@t2='1900-01-01 09:00:00' 
    select Convert(varchar(10),@t1,23)+' '+Convert(varchar(10),@t2,24)
    


    试试Convert

    [SQL] Sql Server 中一個非常強大的日期格式化函數 Convert


    Shadowと愉快なコード達

    2011年12月18日 16:17