Excel 用户在从视图刷新数据时从 SQL 服务器收到转换错误

Excel user getting conversion error from SQL Server when refreshing data from view

(已编辑 - 添加了数据类型和语言信息)

我为员工创建了视图 Foo2。每当他尝试刷新数据时,都会出现错误:

[DataSource.Error] Microsoft SQL Server: the conversion of a varchar data type to a smalldatetime data type resulted in an out-of-range value.

当我(系统管理员角色)尝试刷新 Excel sheet 中的数据时,一切顺利,SSMS 中的查询不会抛出任何错误。用户还使用另一个视图 Foo1 - Foo2 的先前版本。那一个按预期工作。

现在我在这一点上:

语言和数据类型相关信息:

我怀疑用户组获得了对该特定视图的许可 Foo1,但我不知道如何检验这一理论。

所以问题出在他 SELECT 语句的 WHERE 部分。

SELECT
    clmn1
    ,clmn2
    ,clmn3
FROM table1
WHERE clmn1 > '2017-12-31'

clmn1 是数据类型 smalldatetime。我仍然不明白原因,因为从 varcharsmalldatetime 的隐式转换应该是可能的。至少根据这里的图表:

https://docs.microsoft.com/en-us/sql/t-sql/data-types/data-type-conversion-database-engine?view=sql-server-ver15

WHERE 子句中使用 CONVERT 后,SELECT 语句按预期工作:

SELECT
    clmn1
    ,clmn2
    ,clmn3
FROM table1
WHERE clmn1 > CONVERT(smalldatetime, '2017-12-31 23:59:59', 120)

我想我漏掉了什么。无论如何 - 问题解决了。