我得到的錯誤排序:算術溢出錯誤當[時間戳](列名)
Arithmetic overflow error converting expression to data type smalldatetime
請注意,我已經搜查這個話題,但我的錯誤是因爲它獨特的是由ORDER BY
子句引起的。問題行是 WHEN 'TimeStamp' THEN [MyTable].[TimeStamp]
。
當我評論那些TimeStamp
,查詢成功執行,但我仍然需要一個解決方案來排序我的TimeStamp
列(重命名列是不可能的)。
這是我的查詢:
SELECT
Id,
[TimeStamp],
StatusCode
FROM
(
SELECT
TOP (@EndRecord) ROW_NUMBER() OVER
(
ORDER BY
CASE @SortDirection
WHEN 'Desc' THEN
CASE @SortColumn
WHEN 'Id' THEN [MyTable].[Id]
WHEN 'TimeStamp' THEN [MyTable].[TimeStamp]
WHEN 'StatusCode' THEN [MyTable].[StatusCode]
ELSE [MyTable].[TimeStamp]
END
END DESC,
CASE @SortDirection
WHEN 'Asc' THEN
CASE @SortColumn
WHEN 'Id' THEN [MyTable].[Id]
WHEN 'TimeStamp' THEN [MyTable].[TimeStamp]
WHEN 'StatusCode' THEN [MyTable].[StatusCode]
ELSE [MyTable].[TimeStamp]
END
END ASC
) AS 'Row',
[MyTable].[Id] AS 'Id',
[MyTable].[TimeStamp] AS 'TimeStamp',
[MyTable].[StatusCode] AS 'StatusCode'
FROM
[MyTable]
WHERE
(@Filter_Id is null or [MyTable].[Id] = @Filter_Id) AND
(@Filter_StatusCode is null or [MyTable].[StatusCode] = @Filter_StatusCode) AND
(@Filter_FromTimeStamp IS NULL OR [MyTable].[TimeStamp] >= @Filter_FromTimeStamp) AND
(@Filter_TillTimeStamp IS NULL OR [MyTable].[TimeStamp] <= @Filter_TillTimeStamp)
) AS t1
WHERE
Row >[email protected] AND
Row <= @EndRecord
@gcaton我的專欄名稱是'TimeStamp' –