【发布时间】:2015-01-14 16:56:51
【问题描述】:
我正在使用DATEDIFF( day, date1, date2),效果很好。
如果一个数字是正数,是否可以有加号,如果它是负数,它有一个减号。
【问题讨论】:
标签: sql sql-server tsql datediff
我正在使用DATEDIFF( day, date1, date2),效果很好。
如果一个数字是正数,是否可以有加号,如果它是负数,它有一个减号。
【问题讨论】:
标签: sql sql-server tsql datediff
您可以将输出 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
【讨论】:
您可以使用条件格式:
SELECT FORMAT(DATEDIFF( day, date1, date2),'+#;-#;0')
FROM MyTable
【讨论】:
你可以使用
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
【讨论】: