在过去的6个月里获得今天的约会

时间:2015-12-22 07:20:54

标签: sql datetime sql-server-2005

我希望查询中的确切日期为22/06/2015

Joining date完全

  

22/06/2015

从今天开始就是6 months

我试过以下

 Select date_of_joining,*  from emp_mst Where  Dt_Of_Join >= Dateadd(Month, Datediff(Month, 0, DATEADD(m, -6, getdate())), 0)

但它没有用。

对此的确切查询是什么?

我正在使用SQL- server- 2005

5 个答案:

答案 0 :(得分:1)

如果你想要EXACT加入日期(/ date_of_joining .... / Dt_Of_Join)

怎么样?
select distinct employee.name from emp_mst where date_of_joining = DATEADD(month, -6, GETDATE()) 

或者如果您希望以不同的格式返回实际日期:

 CONVERT(Date,DATEADD(month, -6, GETDATE()), 103)

如果您选择此字段

,则适用

答案 1 :(得分:1)

我不是SQL Server的大师,但我在这里找到了简单的答案。

尝试此链接转到其他帖子,该帖子解释了这个确切的问题SQL Server 2005: how to subtract 6 month

您指的是"确切的" 日期,因此您不需要dateiff部分,您可以使用&#从当前日期减去6个月34; DATEADD"这将给你一个确切的日期。只要记住正确键入cast,你就必须精确到毫秒。

答案 2 :(得分:0)

SELECT  employee_name
FROM emp_mst
WHERE Dt_Of_Join = Cast(DATEADD(month, -6, GETDATE()) As Date)
ORDER BY Dt_Of_Join DESC

我认为他只需要知道如何从日期中删除时间

答案 3 :(得分:0)

请注意,您需要有效地处理时间部分

Select *  from emp_mst 
Where  
Dt_Of_Join >= dateadd(month,-6,dateadd(day,datediff(day,0,getdate()),0) 
and 
Dt_Of_Join < dateadd(month,-6,dateadd(day,datediff(day,0,getdate()),1)

答案 4 :(得分:0)

您希望使用前6个月的日期,因此请使用?key和日期格式dateadd(),您应该尝试DD/MM/YYYY

convert(varchar(10),date,101)