我正在尝试从此varchar(512)列中获取日期:
CAM; Initial period payment ($3249.58) 01/01/2012 - 01/31/2012; INITIAL Pmt.
希望将值01/01/2012
作为“开始日期”返回,将01/31/2012
作为“结束日期”返回。
我正在阅读有关内容和parsename
的内容,但我对sql很新,觉得我只是感到困惑。
答案 0 :(得分:0)
不幸的是,SQL中的SUBSTRING
操作总是很脆弱。假设您的所有候选字符串都具有相似的格式,这将是有用的。我确定你会通过一些试验和错误来改进它:
DECLARE @str varchar(1000) = 'CAM; Initial period payment ($3249.58) 01/01/2012 - 01/31/2012; INITIAL Pmt.'
SELECT
CONVERT(date, SUBSTRING(@str, CHARINDEX(')', @str) + 2, 10)) StartDate,
CONVERT(date, SUBSTRING(@str, CHARINDEX('-', @str, CHARINDEX(')', @str, 12)) + 2, 10)) EndDate
您可以使用实际表格中的选项替换@str
变量的使用。