我试图提取截至2014年1月1日至今年(即2014年8月3日)的数据。我怎样才能使用``dateadd`获取日期1/1/14?我使用以下代码获取日期8/3/14。
dateadd (yy, -1, getdate())
我想避免明确搜索1/1/14,因为在一年的时间里,我希望sql查询找到1/1/15,而不必重新进入并重写它
答案 0 :(得分:2)
DATEFROMPARTS(YEAR(GETDATE()) - 1, 1, 1)
答案 1 :(得分:2)
DATEADD(yy, DATEDIFF(yy,0,getdate())-1, 0)
答案 2 :(得分:0)
DATEFROMPARTS()是最好的方法,但它需要SQL2012或更高版本。如果您在早期的vierion,请试试这个:
您可以使用GETDATE()
获取当前日期
您可以使用函数YEAR()
从任何日期提取年份
从中减去1来获得去年
将1/1/
附加到其正面
再将其转换回日期
select convert(datetime, '1/1/' + convert(varchar(max),year(getdate())-1))