sql日期时间验证

问题描述 投票:-2回答:1

我有一个数据类型为nvarchar的列,该列包含数据,即

2017-12,
2017-28,
2017-00,
0000,
0000-22

等等'。

所以在列中我有无效数据,即2017-0000000000-22,所以我希望列输出应该是有效数据,即2017-122017-28等。并在连接条件和case语句中使用该列。

sql sql-server
1个回答
0
投票

使用此查询

我在这里做以下事情。 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')
© www.soinside.com 2019 - 2024. All rights reserved.