在视图 MSSQL 中使用 CAST 或 CONVERT

-1 sql-server sql-server-2008

嗨有一个语法问题 - 至少我认为是。我想要一个默认日期作为物化视图中 case 语句的一部分(MS SQL 2008 +):

, CASE 
    WHEN WithFirstDate = 0 THEN CONVERT(DATE,'1900-JAN-1', 101)
    WHEN WithFirstDate = 1 THEN
        Start1
    ELSE --WithFirstDate = 2 
        Start2
    END ValidDate
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:视图使用从字符串到日期时间或小日期时间的隐式转换。使用具有确定性样式值的显式 CONVERT

我想要一个无论本地化如何都有效的解决方案(即美国风格的日期、日本风格的日期和世界其他地区)

谢谢

Aar*_*and 5

代替:

CONVERT(DATE,'1900-JAN-1', 101)
Run Code Online (Sandbox Code Playgroud)

做就是了:

CONVERT(DATE,'1900-01-01')
Run Code Online (Sandbox Code Playgroud)

但是,问题可能出在其他两列Start1Start2. 我猜这些不是DATE列。