我希望查询中的确切日期为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
答案 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)