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