我搜索了几个小时,发现了很多关于如何将日期时间字段转换为日期的信息。所有这些都在我的 SQL 窗口中运行良好。但是,我尝试在视图中使用它的那一刻它崩溃了。
版本:SQL Server v17.0
示例:
表中字段为:InvoiceDate(datetime,null)
数据为:2016-11-15 00:00:00.000
我的 SQL 代码是:
CONVERT(date,ihhd.InvoiceDate,101) AS InvoiceDate
我的 InvoiceDate 结果是:2016-11-15
当我将相同的代码放入视图中时,我得到了这个:
SQL 执行错误。
已执行 SQL SELECT [选定字段]
错误来源:.Net SqlClient 数据提供程序
错误消息:无法在日期调用方法。
我试图将其转换为 varchar:
CONVERT(varchar,ihhd.InvoiceDate,101) AS InvoiceDate
这不会在视图窗口中返回相同的错误。但是,将使用此数据的报告编写者不允许“类似日期”的比较,因此我需要日期格式的字段。
我也尝试过双重转换:
CONVERT(date,CONVERT(varchar,ihhd.InvoiceDate,101),101) AS InvoiceDate
SQL窗口再次正常,视图窗口抛出了同样的错误。
我究竟做错了什么?