将"Mar  5 2015  4:39PM"转换为"2015-03-05 16:39:00",SQL Server没有特定的函数来处理,所以用自定义函数来处理。   

create function Func_ConvertToDateStr(@str varchar(50))
returns varchar(50)
as
begin
--定义表变量,月份中英文对照
declare @tbl table 
(
EnMonth varchar(20),
Mon varchar(2)
)
insert @tbl
select 'January','01'
union 
select 'February','02'
union
select 'March','03'
union
select 'April','04'
union
select 'May','05'
union
select 'June','06'
union
select 'July','07'
union
select 'August','08'
union
select 'September','09'
union
select 'October','10'
union
select 'November','11'
union
select 'December','12'
--Mar 25 2015  4:39PM
declare @dateStr varchar(50)
select @dateStr=SUBSTRING(@str,8,4)+'-'+a.Mon+'-'+right('00'+ltrim(SUBSTRING(@str,5,2)),2)
+' '+case when right(@str,2)='PM' then CONVERT(varchar(2),12+SUBSTRING(@str,14,1))
          else right('00'+LTRIM(SUBSTRING(@str,13,2)),2) end
+':'+SUBSTRING(@str,16,2)+':00' from @tbl as a where left(a.EnMonth,3)=left(@str,3)
return @dateStr
end

 

 posted on 2017-09-23 14:59  会飞的金鱼  阅读(147)  评论(0)    收藏  举报