我在名为 ShiftDate 的 SQL Server 2008 表中有一个 DATETIME 列。我想将其转换为查询中的 DATE 列:
SELECT ID, ScheduleID, ShiftDate, CONVERT(DATE, ShiftDate) AS ProductionDate
FROM dbo.ScheduleResults
我正在 SSMS 中编辑此查询。如果我在标准查询窗口中运行查询,我不会收到任何错误。如果我在视图编辑器窗口中运行它,我会收到错误“无法在日期调用方法”。
我已经尝试过 CAST 方法,但它得到了同样的错误。
SELECT ID, ScheduleID, ShiftDate, CAST(ShiftDate AS DATE) AS ProductionDate
FROM dbo.ScheduleResults
完整的错误信息是:
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.
我倾向于认为这是 SSMS 中的一个错误,但我想从 StackOverflow 人员那里获得一些关于如何将日期时间列转换为日期的反馈。我可以轻松地将其转换为字符串列,但这并不理想,因为 Excel 不会将其视为日期。