Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Как да използвам DATEDIFF, за да върна година, месец и ден?

Създайте тази функция, тя ще даде точна разлика в датата като година месеци дни

    Create function get_Exact_Date_diff(@date smalldatetime,@date2 smalldatetime)
 returns varchar(50)

    as

    begin

    declare @date3 smalldatetime

    Declare @month int,@year int,@day int

     if @date>@date2
     begin
     set @[email protected]
     set @[email protected]
     set @[email protected]
     end



    SELECT @month=datediff (MONTH,@date,@date2)

    if dateadd(month,@month,@date) >@date2
    begin
    set @[email protected]
    end
    set @day=DATEDIFF(day,dateadd(month,@month,@date),@date2)

    set @[email protected]/12
    set @[email protected] % 12

    return (case when @year=0 then '' when @year=1 then convert(varchar(50),@year ) + ' year ' when @year>1 then convert(varchar(50),@year ) + ' years ' end)
    + (case when @month=0 then '' when @month=1 then convert(varchar(50),@month ) + ' month ' when @month>1 then convert(varchar(50),@month ) + ' months ' end)
    + (case when @day=0 then '' when @day=1 then convert(varchar(50),@day ) + ' day ' when @day>1 then convert(varchar(50),@day ) + ' days ' end)

    end


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008 - Как да върна дефиниран от потребителя тип таблица от функция с стойност на таблица?

  2. Преместване на точка по път в SQL Server 2008

  3. Защо получавам Невалиден опит за извикване на HasRows, когато четецът е затворен с отворена връзка?

  4. Как да прехвърля криптирани съхранени процедури от онлайн база данни към локална?

  5. Принуждаване на ASP.Net да използва TCP/IP за свързване към SQL Server вместо именувани канали