从varchar(50)转换为日期

时间:2019-12-03 14:34:51

标签: sql sql-server

我已将csv文件导入到SQL Server Manager。列之一是日期,但他的数据类型是vachar(50)。

我使用了基本的(广播,转换,try_parse),但仍然收到消息:

  

(从字符转换日期和/或时间时转换失败   字符串。)

能帮我一下吗:)

select cast(
    replace(
        case
            when [factuur_datum] in ('null','')
                then null
            else [factuur_datum]
                end, '-','') as date) as [factuur_datum]
from [dbo].[verkoop]

3 个答案:

答案 0 :(得分:1)

请使用以下查询将其转换为日期

convert(date,'20-12-2018',105)

答案 1 :(得分:0)

我认为 factuur_datum 是日期列:

select
cast(factuur_datum as date) as [Alias]
from [dbo].[verkoop]

不确定数据是什么样子,所以可以举个例子吗?

编辑

convert(datetime,'factuur_datum',1)

如果存在空值,可能会出错,因此您可能需要区分出空值然后进行转换。

答案 2 :(得分:0)

这应该按照您的意愿进行:

select try_cast(replace(factuur_datum, '-', '') as date) as factuur_datum
from [dbo].[verkoop]

无日期将产生NULL

相关问题