我有日期时间值列表。如何选择前一年仅适用于12月。
例如:
Current month = May 2016
Previous year of december = Dec 2015
(it will display data from dec 2015 to may 2016)
if Current month = May 2017
Previous year of december = Dec 2016 and so on.
(it will display data from dec 2015 to may 2016)
有什么想法吗?非常感谢你
答案 0 :(得分:1)
以下查询将提供所需的输出: -
declare @val as date='2016-05-19'
select concat(datename(MM,DATEADD(yy, DATEDIFF(yy,0,@val), -1)),' ',datepart(YYYY,DATEADD(yy, DATEDIFF(yy,0,@val), -1)))
输出:2015年12月
答案 1 :(得分:0)
您可以减去月份数:
select dateadd(month, - month(val), val)
答案 2 :(得分:0)
SELECT
*
FROM
TableName
WHERE
TableName.Date BETWEEN CONVERT(DATE,CONVERT(VARCHAR,DATEPART(YYYY,GETDATE())-1)+'-12-'+'01') AND GETDATE()