如何在SQL中编写具有十进制数据类型的列的条件

时间:2017-12-10 06:01:07

标签: sql-server sql-server-2008-r2 sql-server-2014

我在IBM DB2 / AS400中有一个类型为“PIC S9(7)COMP-3”的日期列。 当我将这些值放在SQL Server中时,我的列数据类型更改为“decimal(7,0)”。这只是使DB2数据类型与SQL Server类似。

现在,我想查找此特定日期列中是否有“空格”或“数字”。

日期栏如下:

 DATE
-------
4040404
       (a space)
404040
2020202
       (a space)
202020

在这样的情况下会出错:       “将数据类型varchar转换为数字时出错。”

 Select ID, DATE 
 from Table1
 Where DATE = ''

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

由于列中出现空格,因此数据类型应默认为varchar。

将列(以避免数据类型错误)显式转换为varchar,然后使用通配符检查浮动空格或数字。例如
where Convert(varchar, Column_Date) like '%[ ]%'where Convert(varchar, Column_Date) like '%[0-9]%'取决于您要过滤的内容。