SQL Server 不获取日期格式 dd-mm-yyyy



我正在尝试将日期变量插入SQL服务器。我尝试插入的输入格式是:dd-mm-yyyy我的SQL server列(定义为DATE类型(需要mm-dd-yyyy。

我的电脑日期格式是dd-mm-yyyy。

错误消息:

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

问题:

  1. 为什么预期格式是mm-dd-yyyy而不是dd-mm-yyyy
  2. 如何使INSERT命令与此或其他日期格式一起使用

谢谢。

在传递日期的文字字符串时,您的电脑用于日期的格式无关紧要,而用于连接SQL Server的LOGIN的语言设置则无关紧要。由于该值被解释为MM-dd-yyyy,这很可能意味着您的语言设置是(美国(ENGLISH

因此,如果你是唯一使用LOGIN的人,你很可能想更改LOGIN的语言以适合自己。大多数欧洲语言,包括BRITISH英语(因为英国人不会说英语微软?😒)使用格式CCD_ 7。

实际上,但是,您应该使用一种明确的日期格式,无论语言设置和数据类型如何,SQL Server中只有2种日期格式。这两种格式分别是yyyyMMddyyyy-MM-ddThh:mm:ss.nnnnnnn。如果总是使用较新的日期和时间数据类型(所以不是datetimesmalldatetime(,那么yyyy-MM-dd( hh:mm:ss.nnnnnnn)也是明确的,但是,由于它是针对较旧数据类型的特定语言,所以我通常不建议使用它。

在存储方面,日期和时间数据类型没有格式,因此您的列不是";预期的";格式为MM-dd-yyyy的值;格式数据";同样,像13-12-2020这样的值之所以有效,是因为您的语言设置使用mdy进行日期解释。

实际上有两件事,

首先,您可以控制每个连接的预期日期格式。在发出插入语句之前,请根据需要执行set dateformat dmy;set dateformat mdy;

其次,建议使用YYYYMMDD的ISO格式的日期,因此如果插入数据"20210314",它将始终得到正确处理。

最新更新