从SQL Server 2008中的varchar字段中提取日期

时间:2015-01-13 00:06:31

标签: sql sql-server-2008

我有一个只有1个名为Details的大列的表;每条记录看起来都与此相似:

Record#1: ...ID: <klsdhf89435>  Date: 1 Jun 2011 12:28:14  From: "Yahoo"...     
Record#2: ...Subject: test  Date: Fri, 24 May 2010 13:18:43 -0500 ID: <7532432423>...
Record#3: ...ID: <234321fd>  Date: 14 Jun 2010 12:28:14  From: "Gmail"...
Record#4: ...ID: <12434>  Date: 1 Jun 2011 12:28:14  From: "Yahoo"...

我想只减去日期。所以,对于这4条记录,我想提取:

1 Jun 2011 12:28:14
Fri, 24 May 2010 13:18:43 -0500
14 Jun 2010 12:28:14
1 Jun 2011 12:28:14

请注意前面的双倍空间&#34;来自&#34;或之前&#34; ID&#34;是一个新的行字符,在SQL Server中为Char(10)

提前致谢

1 个答案:

答案 0 :(得分:0)

SELECT SUBSTR(Details, LOCATE('Date: ', Details), LOCATE('  From:', Details) - LOCATE('Date:  ', Details))
FROM TABLENAME

在插入行时,请考虑将日期解析为新的日期列。

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html