我如何在一年前的这一天找到数据?

时间:2014-06-20 20:49:19

标签: sql sql-server datetime

现在我有:

year(epe_curremploymentdate) = year(DATEADD(year, -1, SYSDATETIME())) 

但那给了我去年的一切。我想要的只是一年前今天的数据。

5 个答案:

答案 0 :(得分:16)

应该是:

epe_curremploymentdate = DATEADD(year, -1, GETDATE())

请勿在where子句中检查

编辑:

简单:使用

cast(epe_curremploymentdate AS DATE) = cast(DATEADD(year, -1,
  GETDATE()) AS DATE)

也就是说,如果您使用的是SQL Server 2008及更高版本。

答案 1 :(得分:3)

这可以让你到达你需要去的地方:

Declare @StartDate datetime, @EndDate datetime

-- @StartDate is midnight on today's date, last year
set @StartDate = Convert(date, (DATEADD(year, -1, getdate()))) 
set @EndDate = DATEADD(Day, 1, @StartDate)

select * 
from YourTable 
where epe_curremploymentdate >= @StartDate 
    and epe_curremploymentdate < @EndDate

-- This where clause will get you everything that happened at any time 
-- on today's date last year.

答案 2 :(得分:1)

如果您有其他字段显示为日期时间,时间部分为00:00:00.000,要进行连接,您可以使用以下

let serviceConfiguration:AWSServiceConfiguration = AWSServiceConfiguration.init(region: .usEast1, credentialsProvider: nil)

    let configuration:AWSCognitoIdentityUserPoolConfiguration = AWSCognitoIdentityUserPoolConfiguration(clientId: "PUT_YOUR_CLIENT_ID_HERE", clientSecret: PUT_YOUR_CLIENT_SECRET_HERE, poolId: "PUT_YOUR_POOL_ID_HERE")
    AWSCognitoIdentityUserPool.register(with: serviceConfiguration, userPoolConfiguration: configuration, forKey: "UserPool")

    AWSServiceManager.default().defaultServiceConfiguration = serviceConfiguration

答案 3 :(得分:0)

今天的日期:

select getdate()

日期一年前:

select dateadd(year, -1, getdate())

一年零一天的日期:

select dateadd(d, -1 , dateadd(year, -1, getdate()))

<强>更新

select *
from
epe_curremploymentdate = dateadd(year, -1, CAST(FLOOR(CAST(GETDATE() AS FLOAT)) AS DATETIME))

这将为您提供一年前开始工作的所有员工的清单。

希望这有帮助!!!

答案 4 :(得分:0)

epe_curremploymentdate = DATEADD(年,-1,GETDATE())