sql-server-2008 – SQL Server无法在日期调用方法

前端之家收集整理的这篇文章主要介绍了sql-server-2008 – SQL Server无法在日期调用方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在sql Server 2008表中有一个名为ShiftDate的DATETIME列.我想将其转换为查询中的DATE列:
SELECT     ID,ScheduleID,ShiftDate,CONVERT(DATE,ShiftDate) AS ProductionDate
FROM       dbo.ScheduleResults

我在SSMS中编辑这个查询.如果我在标准查询窗口中运行查询,我没有收到任何错误.如果我在视图编辑器窗口中运行这个,我会收到错误“无法调用日期方法”.

我尝试了CAST方法,但它得到相同的错误.

SELECT     ID,CAST(ShiftDate AS DATE) AS ProductionDate
FROM       dbo.ScheduleResults

完整的错误信息是:

Executed sql statement: SELECT ID,CAST(ShiftDate as DATE).ToString() AS ProductionDate FROM dbo.ScheduleResults
Error Source: .Net sqlClient Data Provider
Error Message: Cannot call methods on date.

我倾向于认为这是SSMS中的一个错误,但是我想从StackOverflow人员得到一些有关如何将datetime列转换为日期的反馈.我可以很容易地把它转换成一个字符串列,但它并不理想,因为Excel不会看到它作为一个日期.

解决方法

你是正确的,这是SSMS中的一个错误.我正在使用sql Server Management Studio 2008 R2,当我尝试使用内置的设计器创建一个视图时,我得到与您相同的错误消息:
sql Execution Error
Error Source: .Net sqlClient Data Provider
Error Message: Cannot call methods on date.

正如@Aaron Bertrand所说,要解决这个问题,选择“新建查询”并在“查询”窗口中创建“查看”.对于你的代码,它将是:

CREATE VIEW myView AS
SELECT     ID,CAST(ShiftDate AS DATE) AS ProductionDate
FROM       dbo.ScheduleResults

猜你在找的MsSQL相关文章