小编cca*_*mpj的帖子

SQL Server无法在日期调用方法

我在一个名为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不会将其视为日期.

sql-server-2008

21
推荐指数
3
解决办法
2万
查看次数

使用表进行数据验证的非易失性方式,无需使用 INDIRECT

我经常使用 INDIRECT 函数的地方之一是数据验证。如果我有一个名为 的表,tabColor其中有一列名为Color,并且我想将其用于数据验证,您可能会认为可以使用以下公式将数据验证设置为列表:

=tabColor[Color]
Run Code Online (Sandbox Code Playgroud)

但是,这会导致错误。如果用 包裹公式INDIRECT,它会起作用:

=INDIRECT("tabColor[Color]")
Run Code Online (Sandbox Code Playgroud)

所以,我有两个问题:

  1. 在数据验证中使用是否会INDIRECT导致单元格被标记为易失性?
  2. 是否有一种非易失性的方法来使用表进行数据验证?

顺便说一句,如果你想了解更多关于易失性函数的信息,可以在chandoo.org找到一篇不错的文章

excel excel-formula

4
推荐指数
1
解决办法
564
查看次数

SQL Server 2000游标无法获取下一个问题

我有一个SQL Server 2000数据库.我需要运行以下游标来触发单个记录的触发器(触发器一次只能在一条记录上运行).

DECLARE @REC as bigint

DECLARE coil1_cursor CURSOR FOR
SELECT Rec# FROM coil1 WHERE Timestamp BETWEEN '2011-05-10 06:00:00' AND '2011-05-10 07:00:00'

OPEN coil1_cursor
FETCH NEXT FROM coil1_cursor INTO @REC

WHILE (@@FETCH_STATUS=0)
BEGIN
    Print @Rec
    UPDATE coil1 SET ShiftLength=Null WHERE Rec#=@REC

    FETCH NEXT FROM coil1_cursor INTO @REC
END
CLOSE coil1_cursor
DEALLOCATE coil1_cursor
Run Code Online (Sandbox Code Playgroud)

如果我注释掉UPDATE行,我会按照预期从Rec#字段获取序列号.如果我取消注释UPDATE行,批处理将进入无限循环.当我停止批处理时,它只显示更新它获得的第一个记录.这就像FETCH NEXT卡住了.有什么想法吗?

sql-server cursor

3
推荐指数
1
解决办法
3592
查看次数