【发布时间】:2015-10-20 03:42:23
【问题描述】:
我正在尝试使用 DATEDIFF 从两个日期获取间隔(年份),但它只计算年份。 例如,
SELECT DATEDIFF(year, '2005-01-03', '2006-01-01');
结果是1,但得到的结果应该是0,因为日期还是1月1日。
还有其他方法吗?
【问题讨论】:
-
当闰年开始时,您是否关心结果的准确性?
-
一点也不,所以问题来了,我想做这个查询
Select * From Employee where (DATEDIFF(DAY, HireDate, GETDATE())/365)%6=0 AND (GETDATE() BETWEEN DATEADD(Day, -6, CAST(STUFF(CONVERT(VARCHAR(23), HireDate,121),1, 4, CAST(YEAR(GETDATE()) AS VARCHAR(4)))AS DATETIME)) AND DATEADD(Month, 6, CAST(STUFF(CONVERT(VARCHAR(23), HireDate,121),1, 4, CAST(YEAR(GETDATE()) AS VARCHAR(4)))AS DATETIME)))显示今年雇用前后6 年或6 个月的所有员工。这可能吗? -
您评论中的问题与原始问题有很大不同。我建议提出一个新问题。清楚地解释你的问题是什么。显示您的查询并解释您要达到的目标。提供一些示例、几行示例数据以及您期望的查询结果。如果你问这样的问题,你很快就会得到很好的答案。目前(对我而言)不可能在评论中理解您的问题。
标签: sql-server validation date intervals datediff