use*_*473 12 sql sql-server datetime
现在我有:
year(epe_curremploymentdate) = year(DATEADD(year, -1, SYSDATETIME()))
Run Code Online (Sandbox Code Playgroud)
但这给了我去年的一切.我想要的只是一年前的今天的数据.
Kar*_*san 20
它应该是:
epe_curremploymentdate = DATEADD(year, -1, GETDATE())
Run Code Online (Sandbox Code Playgroud)
不要在where子句中检查年份.
编辑:
简单:使用
cast(epe_curremploymentdate AS DATE) = cast(DATEADD(year, -1,
GETDATE()) AS DATE)
Run Code Online (Sandbox Code Playgroud)
也就是说,如果您使用的是SQL Server 2008及更高版本.
这应该可以带您到达您需要去的地方:
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.
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
36624 次 |
最近记录: |