将串联的列转换为日期

时间:2019-01-16 15:21:48

标签: sql-server tsql date

如何将这段代码转换为日期。我正在使用“天”列使用下面的TSQL代码创建日期。

convert(nvarchar(2),a.ucdaycode) + '/' +
    cast(month(GETDATE()) as varchar) + '/' +
    cast(YEAR(GETDATE()) as varchar)

有人有什么想法吗?

谢谢

2 个答案:

答案 0 :(得分:2)

以下是使用DATEADDDATEDIFF的选项:

SELECT
    a.ucdaycode,
    DATEADD(dd, a.ucdaycode, DATEADD(month, DATEDIFF(month, 0, GETDATE()), 0)) AS some_date
FROM yourTable a;

enter image description here

Demo

@Zohar的回答看上去比这更干净,但它可能仅在SQL Server 2012或更高版本上运行。

答案 1 :(得分:1)

使用DATEFROMPARTS

SELECT DATEFROMPARTS(YEAR(GETDATE()), MONTH(GETDATE()), a.ucdaycode)