【发布时间】:2012-08-29 11:26:42
【问题描述】:
我在 64 位版本的 Windows Server 2008 R2 标准 (sp1) 上运行 SQL Server Standard 2008 R2
我已将日志文件作为平面文件源导入。在名为 big 的表中,导入中名为 col2 的列之一包含如下值:16/Mar/2007:11:30:17 as varchar(50)。
我想将该列 (col2) 转换为 datetime 数据类型。
我尝试的一种方法是提取日期字符串的每个部分,然后重新组合并转换它们。
我遇到的问题是每列都有不同的宽度,因为日志文件不能被整齐地分隔,使得使用类似CHARINDEX 的东西返回一个数字或有时为 NULL。
我一直在尝试使用 CLR 集成使用正则表达式进行设置,但无法使其正常工作(我无法在 Visual Studio 中创建 C# 项目,没有选项)并且 Master Data Services 不会安装,因为 SQL Server 2008 R2 Standard 不支持它。
我最好的方法是什么?使用CASE、SUBSTRING 和CHARINDEX?
【问题讨论】:
标签: tsql datetime sql-server-2008-r2 varchar