【问题标题】:SQL DATEDIFF add plus sign if number is positive如果数字是正数,SQL DATEDIFF 添加加号
【发布时间】:2015-01-14 16:56:51
【问题描述】:

我正在使用DATEDIFF( day, date1, date2),效果很好。

如果一个数字是正数,是否可以有加号,如果它是负数,它有一个减号。

【问题讨论】:

    标签: sql sql-server tsql datediff


    【解决方案1】:

    您可以将输出 CAST 或 CONVERT 转换为字符串,然后在需要时添加“+”号(如果为负数,则减号已经存在。

    Case When DATEDIFF( day, date1, date2) > 0 Then '+' Else '' End + Cast (DATEDIFF( day, date1, date2) as VarChar(10))
    

    这是一个例子

    ;With MyTable as
    (
        Select GETDATE() as Date1, GetDate()+10 as Date2
    )
    Select 
        Case When DATEDIFF( day, date1, date2) > 0 Then '+' Else '' End + Cast (DATEDIFF( day, date1, date2) as VarChar(10))
        From MyTable
    
    
    ;With MyTable as
    (
        Select GETDATE() as Date1, GetDate()-10 as Date2
    )
    Select 
        Case When DATEDIFF( day, date1, date2) > 0 Then '+' Else '' End + Cast (DATEDIFF( day, date1, date2) as VarChar(10))
        From MyTable
    

    【讨论】:

      【解决方案2】:

      您可以使用条件格式:

      SELECT FORMAT(DATEDIFF( day, date1, date2),'+#;-#;0')
      FROM MyTable
      

      【讨论】:

        【解决方案3】:

        你可以使用

        DECLARE @date1 as datetime 
        DECLARE @date2 as datetime 
        DECLARE @datediff as varchar(10) 
        SET @date1 = GETDATE() - 10
        SET @date2 = GETDATE() - 1
        SET @datediff = DATEDIFF( day, @date1, @date2)
        
         SELECT Case 
            When @datediff > 0 Then '+'
              Else '-' 
         End + @datediff
        

        【讨论】:

          猜你喜欢
          • 2017-08-16
          • 2019-12-23
          • 1970-01-01
          • 2015-05-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-10-11
          相关资源
          最近更新 更多