【发布时间】:2018-06-05 14:04:09
【问题描述】:
我有一个存储过程,表由整数组成,表示年、月、日的日期。
BEGIN
SET NOCOUNT ON;
SELECT
[Address],
FROM [dbo].[Stats]
WHERE DATEADD(year, [year]-1900, DATEADD(month, [month]-1, DATEADD(day, [day]-1, DATEADD(hour, [hour]-1, DATEADD(minute, [minute]-1, 0))))) >= @datetime
END
如果我将日期时间传递给存储过程,我该如何做 where 语句。如何简化以下程序?
我也试过了
DATEADD(year, [year]-1900, DATEADD(month, [month]-1, DATEADD(day, [day]-1, DATEADD(hour, [hour]-1, DATEADD(minute, [minute]-1, 0))))) as [DateTime]
FROM [dbo].[Stats]
AND [DateTime] >= @datetime
它说 [DateTime] 不存在,如何从存储过程的计算中分配 AS 新字段?查询正常。
【问题讨论】:
-
用您正在使用的数据库(很明显是 SQL Server)标记您的问题。
-
您不能在 where 子句中使用像
[DateTime]这样的别名,您需要在AND语句中再次重复整个计算。我不相信在normal query中是这样的
标签: sql sql-server