sql - 在 SQL Server 2000 中使用日期时间作为列别名

标签 sql sql-server-2000

希望这对某人来说是一个快速的过程!我已经搜索了一段时间,但没有找到该问题的真正答案。我在 SQL Server 2000 中有一个存储过程。我有一个变量 @DayToCheck,它是一个日期时间。

@DayToCheck datetime

我需要将其用于我所依赖的专栏。然而它不起作用。我尝试过转换为 varchar,但它也不喜欢那样。这是我需要使用的两个计数列。

sum(case when startdate=@DayToCheck then 1 else 0 end) as CONVERT(varchar, @DayToCheck, 103),
sum(case when startdate=DATEADD(day,-7,@DayToCheck) then 1 else 0 end) as DATEADD(day,-7,@DayToCheck)

因此上面应该有两列,它们的别名应该是日期(第一列)和第二列的日期 -7 天。

感谢您的帮助!

最佳答案

你必须使用动态sql。所以也许是这样的:

DECLARE @DayToCheck datetime
SET @DayToCheck=GETDATE()

DECLARE @query NVARCHAR(4000)
SET @query=
N'SELECT
    sum(case when startdate=@DayToCheck then 1 else 0 end) as '+
    CONVERT(varchar, @DayToCheck, 103)+',
    sum(case when startdate=DATEADD(day,-7,@DayToCheck) then 1 else 0 end) as '+
    CONVERT(varchar, @DayToCheck, 103)+'
FROM
    table1'

EXECUTE(@query)

关于sql - 在 SQL Server 2000 中使用日期时间作为列别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10531084/

相关文章:

mysql - 检查 MySQL 数据库中是否存在值数组

sql - 如何列出 Informix 中的所有存储过程?

sql - 如何在 INSTEAD OF UPDATE 触发器中检查列是否正在更新

mysql - MySQL 如何解释 : ORDER BY CASE status WHEN 1 THEN 1 ELSE -1 END DESC

mysql - 加入+计数第二张表

sql-server - SQL Server : Must numbers all be specified with latin numeral digits?

sql-server - 使用 SQL Server 2000 INSERT INTO @TABLE EXEC @query

sql - 无法再次绑定(bind)多部分标识符

sql-server - SQL 服务器错误?

c++ - sql参数的最佳STL容器