11

如何将时间格式 “10:02:22 PM”转换为 SQL Server DateTime 格式。

我有一列这样的数据。我从 CSV 文件中导入了此列,现在想将其转换为日期时间格式,以便能够使用日期时间函数。

我希望能够将此列插入到另一个具有正确日期时间格式的表中。

4

2 回答 2

5

使用此链接:http: //msdn.microsoft.com/en-us/library/ms187928.aspx

仅用于时间转换...

SELECT CONVERT( TIME, '10:00:22 PM' );

给出以下输出...

22:00:22.000000

日期和时间的时间转换...

SELECT CONVERT( DATETIME, '10:00:22 PM' );

给出以下输出...

1900-01-01 22:00:22.0000 

注意:因为datetime您需要输入特定日期,否则它会考虑默认世纪日期。

于 2013-04-18T05:58:32.123 回答
1

你不需要转换它。使用时会发生隐式转换

INSERT otherTable
SELECT ....., timeAsVarchar, ...
  FROM csvTable

如果所有时间数据(前导空格与否)都可以从字符串中解析出来,那么查询将很好地工作。但是,如果存在无法转换为时间的不良数据或空白数据的可能性,请先对其进行测试

INSERT otherTable
SELECT ....., CASE WHEN ISDATE(timeAsVarchar)=1 THEN timeAsVarchar END, ...
  FROM csvTable

ELSE NULL是隐含的,所以我把它省略了。

于 2013-04-18T05:55:25.060 回答