1

是否可以将 5122012 的 varchar 转换为 05/12/2012 的日期时间?

谢谢

4

1 回答 1

3

首先,如果没有日期和月份的尾随零,您将无法做到这一点。所以你的输入数据必须是这样的:

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')
于 2012-11-29T12:21:54.883 回答