Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào để sử dụng DATEDIFF để quay lại năm, tháng và ngày?

Tạo chức năng này, nó sẽ cung cấp sự khác biệt về ngày chính xác như ngày tháng trong năm

    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. Lỗi nhập bằng Openrowset

  2. IDENTITY () so với IDENTITY () trong SQL Server:Sự khác biệt là gì?

  3. Triển khai nhanh ứng dụng Visual Studio 2010 với cơ sở dữ liệu SQL

  4. Làm thế nào để bạn tạo phiên bản trong Nhibernate?

  5. Làm cách nào để biết liệu SQLexception có bị ném do vi phạm khóa ngoại hay không?