在sql server 2008中批量插入日期

时间:2015-09-01 15:49:03

标签: sql-server sql-server-2008 bulk

我正在尝试使用该SQL查询导入表中的用户:

9.0
4
1   SQLCHAR 0   0   ";" 1   Matricule   ""
2   SQLCHAR 0   0   ";" 2   Prenom  ""
3   SQLCHAR 0   0   ";" 3   Nom ""
4   SQLDATETIME 0   0   "\r\n"  4   Date_sortie ""

这是我正在使用的fmt文件:

000001;JOHN;DOE;'2001-01-01 00:00:00.000'

以下是我要导入的数据示例:

Msg 4864, Level 16, State 1, Line 2
Error converting the bulk load data (type mismatch or invalid character for the specified codepage) for row 1, column 4 (Date_sortie).

我收到错误(因为我使用的是法语版的sql server,所以通过谷歌翻译):

jQuery("#silhouette-form").on("click", ".selection", function () {
    var $this = $(this);
    var all = $("#silhouette-form").find(".selection").not($this);
    var val = $this.val();

    if ($this.prop("checked") === true) {
        all.filter(function () {
            return $(this).val() != val;
        }).prop("checked", false);
    }
});

我尝试过使用单引号,双引号,无引号和不同的日期格式,但我无法弄清楚SQL Server正在等待的格式。

PSA_DATESORTIE是一个允许空值的“日期时间”类型。

有人遇到过这个问题吗? 非常感谢! 马克

1 个答案:

答案 0 :(得分:0)

根据您的语言,数据格式会有所不同。既然你提到你正在运行法语版的SQL Server,那就意味着

SELECT CONVERT(DATETIME, '2015-20-11')

对你来说会很好,但是

SELECT CONVERT(DATETIME, '2015-11-20')

将返回错误。是

尝试从数据集中手动插入几行,然后查看哪种格式有效。您提供的样本行'2001-01-01 00:00:00.000'没有用,因为它的值不会超过月(12)的最大值。从数据集中查找具有日期大于12的日期值的几行(如上例所示)。

此外,请确保数据集中的空值确实没有值而不是字符串“null”。最后,如果所有检查都正常,请查看数据集中隐藏的可能特殊/不可打印的字符。