【发布时间】:2016-07-28 19:08:04
【问题描述】:
我有一个数据类型为 varchar 的列 policy_date
Policy_date
-----------
A1999062
20010405
我想更新数据 isumeric(policy_date) = 0 的情况,然后修剪字母表 (1999062) 并检查 len 是否小于 8,然后将其设为 NULL,否则 Policy_date。
注意:我必须将日期字段转换为 date 数据类型,而不是 varchar。
我的输出应该是这样的:
Policy_Date
-----------
NULL
2001-04-05
任何人都可以编写 sql case 语句。 谢谢你, 斯瓦蒂。
【问题讨论】:
-
我无法编写案例陈述,但这是我尝试过的.. select RIGHT([policy_date], LEN([policy_date]) - 1) AS MyTrimmedColumn FROM table where isnumeric ([policy_date] )= 0
-
您使用的是哪个版本的 SQL Server?自 SQL Server 2012 以来添加了几个函数(TRY_PARSE、TRY_CONVERT 和 TRY_CAST),可用于帮助解决此问题。
标签: sql sql-server