如何在 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'),
......
)
我正在尝试在 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'),
......
)