Разделение поля Datetime на лету в T-SQL
Это вопрос, который я написал, и подумал, что это то, что я хотел. Я думаю, глядя на это, вы можете увидеть, что я пытаюсь сделать:
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 ответ
Решение
Вы не можете создать псевдоним поля, а затем использовать этот псевдоним в других частях инструкции SELECT.
Пытаться:
INSERT INTO tbTime
SELECT DISTINCT
DATEPART(yyyy, EntireDate),
DATEPART(mm, EntireDate),
DATEPART(dd, EntireDate),
EntireDate AS ed
FROM test