如何在SQL Server中连接datepart?

时间:2016-07-29 07:45:56

标签: ssms sql-server-2014

我正在尝试在SQL Server中创建主日历。我用这种语法面临问题:

[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 (...)

我已经尝试了上面的语法并显示:

  

从字符串

转换日期和/或时间时转换失败

  

数据类型varchar和varchar在'&'中不兼容操作

有人可以帮我这个,我想显示像(YearDayMonth)这样的日期 - 20160111 - 如何连接这三个?

1 个答案:

答案 0 :(得分:0)

为什么不能使用

SELECT FORMAT(SYSDATETIME(), 'yyyyddMM')

或在CREATE TABLE声明中:

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