我有一个数据类型为nvarchar
的列,该列包含数据,即
2017-12,
2017-28,
2017-00,
0000,
0000-22
等等'。
所以在列中我有无效数据,即2017-00
,0000
,0000-22
,所以我希望列输出应该是有效数据,即2017-12
,2017-28
等。并在连接条件和case语句中使用该列。
使用此查询
我在这里做以下事情。 1.首先删除 - 从你的价值观2.你说2017-12,2017-28是有效数据,意味着年份跟随日期。所以他们应该在2017-1至2017-31之间,即20171和207131,当短划线被删除。
下面的查询首先删除您的列的短划线,然后获取20171和201731之间的值。在查询年份不是硬编码,所以它适用于明年也像2018年。
Select * from yourtable where REPLACE(yourcolumn, '-', '')
between (year(getdate())+'1') AND (year(getdate())+'31')