如何在 SQL 服务器中连接日期部分?

How to concatenate datepart in SQL Server?

我正在尝试在 SQL 服务器中制作主日历。我遇到了这个语法的问题:

[dateid] as DATEPART(YEAR, [date]) & DATEPART(day, format( [date],'DD')) & DATEPART(month, format([date], 'MM')) 

[dateid] as convert(varchar(4), DATEPART(YEAR, [date])) + convert(varchar(2), DATEPART(day, format( [date], 'DD'))) + convert(varchar(2), DATEPART(month, format([date], 'MM'))) 

[dateid] as cast(DATEPART(YEAR, [date]) as varchar(4))  + cast(DATEPART(day, format( [date], 'DD')) as varchar(2)) + cast(DATEPART(month, format([date], 'MM')) as varchar(2)) 

这些语句在 create table tablename (...).

我试过上面的语法,它显示:

Conversion failed when converting date and/or time from character string

The data types varchar and varchar are incompatible in the '&' operator.

谁能帮我解决这个问题,我想显示像 (YearDayMonth)-20160111 这样的日期 - 如何连接这三个?

为什么不能直接使用

SELECT FORMAT(SYSDATETIME(), 'yyyyddMM')

或在您的 CREATE TABLE 语句中:

CREATE TABLE dbo.YourTable
(
    .....
    SomeDate DATE,
    DateId AS FORMAT(SomeDate, 'yyyyddMM'),
    ......
 )