在T-SQL中动态分割日期时间字段

时间:2011-07-25 16:34:50

标签: sql-server-2008 datetime datepart

这是我写的一个查询,我认为可能是我想要的。我认为通过观察它你可以看到我正在尝试做什么:

INSERT INTO tbTime
SELECT DISTINCT
    DATEPART(yyyy, ed),
    DATEPART(mm, ed),
    DATEPART(dd, ed),
    EntireDate AS ed
FROM test

我基本上是从另一个表复制日期字段,但我希望将其分成年,月和日的字段。但上述查询无效:

Invalid column name 'ed'.

我正在使用SQL Server 2008,谢谢!

1 个答案:

答案 0 :(得分:3)

您不能为字段设置别名,然后在SELECT语句的其他部分使用该别名。

尝试:

INSERT INTO tbTime
SELECT DISTINCT
    DATEPART(yyyy, EntireDate),
    DATEPART(mm, EntireDate),
    DATEPART(dd, EntireDate),
    EntireDate AS ed
FROM test