我正在将访问数据库导入sql。
原始访问数据库有一个可以很好地导入的日期字段,但时间字段是文本(例如,上午10:00)。
我有超过4000条记录,并假设有一种方法可以将上午10:00转换为10:00:00.000(或07:30 PM至19:30:00.000等等),以便可以合并使用预先存在的日期字段(现在就像2011-11-11 00:00:00.000)。
另外,如果在同一过程中很容易进行转换和连接,请注意。
答案 0 :(得分:1)
将时间从上午或下午10:00 PM
格式转换为时间格式10:00:00.000
:
select cast(timestring as time(7))
答案 1 :(得分:1)
declare @timeField as varchar(10)
set @timeField = '07:30 PM'
declare @dateField as varchar(10)
set @dateField = '1900-01-01'
select CONVERT(datetime,@dateField + ' ' + CAST(CONVERT(time, @timeField ,121) AS VARCHAR(11)),121)
答案 2 :(得分:0)
在你的导入脚本中(我假设你使用某种SQL来从E.T.L你的数据从Access到SQL服务器),你可以使用convert函数:
declare @t as time = Convert(time, '10:00PM' )
print @t -- prints 22:00:00.0000000
OR
declare @t as time = Convert(time, '10:00AM' )
print @t -- prints 10:00:00.0000000
当然,如果你想根据你的例子控制精度:
Convert(time(3), '10:00PM' ) -- prints 22:00:00.000