当我尝试导出此格式“2020-04-13 14:13:54”时,数据库导出失败

Database export fails when I try to export this format '2020-04-13 14:13:54'

当我尝试执行这个插入时

INSERT INTO BCS_EXPEDIENTES_REGISTRADOS (FOLIO, DOCUMENTO, FECHA_REGISTRO_DPS, CANT_PAGINAS) 
VALUES ('24', 'Suc4437_X722INSURGEN_20200305033042.tiff', '2020-04-13 14:13:54', '79') 

我收到一个错误:

The conversion of a varchar data type to a datetime data type resulted in an out-of-range value.

过程是:

对这个案例有什么想法吗?我需要在 SQL 服务器 yyyy-MM-dd HH:mm:ss

上以这种格式导出日期时间

让我先说 datetime has no concept of display format.
仅当我们讨论日期时间值的字符串表示形式时,显示格式才相关。

然后,让我们看看您使用的格式:yyyy-MM-dd HH:mm:ss(称为 ODBC 规范)。
将此格式的字符串转换为 DateTime 时,转换结果取决于区域性。 这意味着当以某些语言(如英语)运行时 SQL 服务器将尝试使用 yyyy-MM-dd 作为日期,但在其他语言(如德语)中它将尝试使用 yyyy-dd-MM 作为日期.
这就是您收到转换错误的原因。

重要说明:除非您明确设置语言(或 DateFormat,就此而言),SQL服务器将使用登录的默认语言 - 因此一些用户转换可能会失败,而其他用户会成功。

另一个注意事项是 - 将此格式转换为 DateTime2 将始终被解释为 yyyy-MM-dd.

因此,考虑到所有这些信息,您在这里有三个选择:

  1. 停止使用 DateTime,改用 DateTime2。
  2. 在处理日期时间值的字符串表示时,不要使用不安全的 ODBC 规范格式,而是使用安全的 ISO8601 格式:yyyy-mm-ddThh:mi:ss.mmm.
  3. 在插入语句之前显式 set language or date format(对 ymd)。

我建议结合前两个,如果可能避免使用第三个。
DateTime2 is a better data type than DateTime, and ISO 8601 是通用标准,作为明确的日期时间格式在不同平台和语言中得到支持。