我在一个名为ShiftDate的SQL Server 2008表中有一个DATETIME列.我想将其转换为查询中的DATE列:
SELECT ID, ScheduleID, ShiftDate, CONVERT(DATE, ShiftDate) AS ProductionDate
FROM dbo.ScheduleResults
Run Code Online (Sandbox Code Playgroud)
我在SSMS中编辑此查询.如果我在标准查询窗口中运行查询,我不会收到任何错误.如果我在视图编辑器窗口中运行它,我会收到错误"无法在日期调用方法".
我已经尝试了CAST方法,但它得到了同样的错误.
SELECT ID, ScheduleID, ShiftDate, CAST(ShiftDate AS DATE) AS ProductionDate
FROM dbo.ScheduleResults
Run Code Online (Sandbox Code Playgroud)
完整的错误消息是:
Executed SQL statement: SELECT ID, ScheduleID, ShiftDate, CAST(ShiftDate as DATE).ToString() AS ProductionDate FROM dbo.ScheduleResults
Error Source: .Net SqlClient Data Provider
Error Message: Cannot call methods on date.
Run Code Online (Sandbox Code Playgroud)
我倾向于认为这是SSMS中的一个错误,但我想从StackOverflow人员那里得到一些关于如何将datetime列转换为日期的反馈.我可以轻松地将其转换为字符串列,但它并不理想,因为Excel不会将其视为日期.