我的元素在“创建日期”列中具有DATETIME格式的值。
我希望能够在执行查询的时间之前提取值(作为参考采用GETDATE())
执行此操作时:
UPDATE #LPs
SET LastUsed = (GETDATE() - DateCreated)
我得到的是1900-01-01,我认为这是由于SQL Server对最小DATETIME
的限制。
我应该如何才能获得“2年3个月”,“2个月”(任何日期时间格式)等值?
答案 0 :(得分:2)
Sql server没有内置函数,它将日期差异作为您想要的格式化字符串返回,但它有一个DATEDIFF
函数,它将返回两个日期之间的日期部分数:
DECLARE @Now datetime = GETDATE(),
@Date datetime = GETDATE() + 5 -- five days from now
SELECT @Now as Now,
@Date as Date,
DATEDIFF(Day, @Now, @Date) As DateDiff
您可以获取日期之间的月数,并使用modulu operator
自行计算字符串答案 1 :(得分:1)
SELECT DATEDIFF(day, DateCreated, GETDATE())
FROM table
也许有效