是否可以将 5122012 的 varchar 转换为 05/12/2012 的日期时间?
谢谢
首先,如果没有日期和月份的尾随零,您将无法做到这一点。所以你的输入数据必须是这样的:
05122012
其次,最好使用“本机”格式:
20121205
服务器无论如何都明白什么
如果这是获取您提供的数据的唯一方法,您将需要一个函数来测试并返回日期
基本功能是这样的(SQL Server 2008 示例):
如果输入数据是:05122012
如果您需要不带尾随,则此函数有效,0
您需要将检查添加到函数中
create function [dbo].[Str2Date] ( @data as varchar(8))
returns datetime
AS
begin
declare @day char(2), @mon char(2), @year char(4)
set @day = substring(@data,1,2)
set @mon = substring(@data,3,2)
set @year = substring(@data,5,4)
set @data = @year+@mon+@day
return convert (datetime,@data,112)
end
select dbo.Str2Date('05122012')