如何将时间格式 “10:02:22 PM”转换为 SQL Server DateTime 格式。
我有一列这样的数据。我从 CSV 文件中导入了此列,现在想将其转换为日期时间格式,以便能够使用日期时间函数。
我希望能够将此列插入到另一个具有正确日期时间格式的表中。
如何将时间格式 “10:02:22 PM”转换为 SQL Server DateTime 格式。
我有一列这样的数据。我从 CSV 文件中导入了此列,现在想将其转换为日期时间格式,以便能够使用日期时间函数。
我希望能够将此列插入到另一个具有正确日期时间格式的表中。
使用此链接: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
您需要输入特定日期,否则它会考虑默认世纪日期。
你不需要转换它。使用时会发生隐式转换
INSERT otherTable
SELECT ....., timeAsVarchar, ...
FROM csvTable
如果所有时间数据(前导空格与否)都可以从字符串中解析出来,那么查询将很好地工作。但是,如果存在无法转换为时间的不良数据或空白数据的可能性,请先对其进行测试
INSERT otherTable
SELECT ....., CASE WHEN ISDATE(timeAsVarchar)=1 THEN timeAsVarchar END, ...
FROM csvTable
ELSE NULL
是隐含的,所以我把它省略了。