从日期字段中选择年份组

时间:2018-06-28 17:06:21

标签: sql sql-server

我正在尝试从存储为nvarchar的日期字段中获取年份列表,因此我认为执行子查询来转换日期,然后选择年份是最好的方法,但是很难设置它

UnsupportedOperationException

任何建议都将有助于正确设置此设置

2 个答案:

答案 0 :(得分:1)

子查询应该放在您的FROM子句中:

SELECT datepart(yyyy, mydate) as datenum
FROM (SELECT convert(date, yourdatestringfield ,5) as myDate FROM SalesReport_AllDBs) as years
GROUP BY datepart(yyyy,mydate);

或者在一个没有子查询的查询中,这看起来好多了:

SELECT datepart(convert(date, yourdatestringfield ,5)) as datenum
FROM SalesReport_AllDBs
GROUP BY datenum

您实际上应该只将表固定为保留日期而不是字符串。这只会导致一些噩梦和缓慢缓慢的查询。

答案 1 :(得分:0)

select distinct year(cast([datenum] as date)) year
from SalesReport_AllDBs