我正在尝试使用批量插入加载csv文件。我的csv文件有4个日期列,我认为这是导致问题的。日期格式为DD/MM/YY
,如何将其更改为DD/MM/YYYY
。我需要将这些日期字段导入date
列,而不是varchar
。
我正在将此文件加载到#temptable中,然后使用以下代码将其插入到数据库表中:
insert into table (a,b,c,d,e)
select a,
b,
convert(date,c,103),
convert(date,d,103),
e
from #temptable
不确定我哪里出错了。任何帮助将不胜感激。
答案 0 :(得分:0)
您可以使用 SET DATEFORMAT
示例强>
Set DateFormat DMY
Declare @D varchar(25) = '20/02/2018'
Select try_convert(date,@D)
<强>返回强>
2018-02-20
编辑 - 只是为了娱乐
如果将DateFormat设置为MDY,则try_convert将返回null
Set DateFormat MDY
Declare @D varchar(25) = '20/02/2018'
Select try_convert(date,@D)
退货
NULL
答案 1 :(得分:0)
如果临时表中的格式“更改”,那是因为它们已经是日期。你可以这样做:
insert into table (a, b, c, d, e)
select a, b, c, d, e
from #temptable;
如果不起作用,请找到有问题的值:
select d, e
from #temptable
where convert(date, c, 103) is null or
convert(date, d, 103) is null;