将字符串转换为日期

时间:2011-01-07 18:36:15

标签: sql-server-2008 datetime

我正在查询以这种格式返回日期的网络服务:Thu Jan 06 12:17:19 CST 2011

我需要将其转换为与SQL Server 2008兼容的日期时间值。任何想法?

1 个答案:

答案 0 :(得分:0)

首先,您能否请求网络服务开发人员返回更加标准化的日期时间?最好是UTC还是类似的东西?

如果没有,您可以根据需要在SQL Server中执行此操作。您可以使用子字符串和一些假设来进行以下转换:

DECLARE @date nvarchar(50)
SET @date = 'Thu Jan 06 12:17:19 CST 2011'

PRINT @date

PRINT cast(right(@date, 4) + '/' + 
    substring(@date, 5, 3) + '/' + 
    substring(@date, 9, 2) + ' ' +
    substring(@date, 12, 8) as datetime)

它确实假设月份将始终采用3个字符的格式。所有这一切的缺点是CST部分 - 如果他们返回的时间与您的时区不同,则时间无效。

运行此命令将返回:

Thu Jan 06 12:17:19 CST 2011
2011/01/06 12:17:19