从 CSV 到 Microsoft SQL 服务器的日期导入

Date import from CSV to Microsoft SQL Server

我正在尝试使用 Microsoft SQL 服务器管理工​​作室中的 SQL 服务器导入向导将包含数据的 csv 文件导入我的 SQL 服务器。

CSV 文件日期如下所示:

02-04-2021
03-04-2021
05-04-2021
06-04-2021
07-04-2021
08-04-2021
09-04-2021
10-04-2021
12-04-2021
13-04-2021
14-04-2021
15-04-2021
16-04-2021
17-04-2021
19-04-2021
20-04-2021
21-04-2021
22-04-2021
23-04-2021
24-04-2021
26-04-2021
27-04-2021
28-04-2021
29-04-2021
30-04-2021

在向导中,我选择了源数据类型作为日期,而目标 table 的数据类型为日期(我也试过 datetime、datetime2,都是同样的问题) 导入成功完成,但结果是:

2021-01-04
2021-02-04
2021-03-04
2021-05-04
2021-06-04
2021-07-04
2021-08-04
2021-09-04
2021-10-04
2021-12-04
2021-04-13
2021-04-14
2021-04-15
2021-04-16
2021-04-17
2021-04-19
2021-04-20
2021-04-21
2021-04-22
2021-04-23
2021-04-24
2021-04-26
2021-04-27
2021-04-28
2021-04-29
2021-04-30

如您所见,日期和月份混合,日期错误。有些行是正确的,但有些行是月而不是日。

我能做什么?

谢谢!

这是在 SSMS 中通过 T-SQL 执行的操作。

正如@Lamu 所指出的,输入文件日期格式不明确。所以下面一行准确地指定了它:

SET DATEFORMAT DMY;

SQL

USE tempdb;
GO

DROP TABLE IF EXISTS dbo.tbl;

CREATE TABLE dbo.tbl 
(
   inputDate      DATE
);

-- to let know format of the date in the *.csv file
SET DATEFORMAT DMY;

BULK INSERT dbo.tbl 
FROM 'e:\temp\Faenno.csv'
WITH  
(
   DATAFILETYPE    = 'char', --widechar',
   FIELDTERMINATOR = ',',
   ROWTERMINATOR = '\n',
   CODEPAGE = '65001'
);

SELECT * FROM dbo.tbl;