连接2个x字段以生成日期

时间:2016-07-12 13:02:52

标签: sql-server

我有2个x字段T1.period和T1.year都有数据类型smallint 使用SQL Management Studio 2014如何连接它们并将结果作为DATE类型返回?

此外,T1.period的值为1到12我如何将其填充到01到12 ...或者将更改为日期类型将其排序?

非常感谢!

示例数据......

期间年 2015年1月 2 2009年 12 2009年 2010年11月 10 2011年

结果将是...... 日期 2015年1月1日 2009年1月2日 01/12/2009 01/11/2010 01/10/2011

谢谢!

看起来很难挣扎到列表 - 抱歉:(

1 个答案:

答案 0 :(得分:1)

转换您的价值观老式的方式

假设您的t1.period值实际上仅代表一个月,您可以考虑将您的值转换为字符串,然后通过CAST()函数将该连接结果转换为日期:

SELECT CAST(CAST(t1.year AS VARCHAR) + '-' + CAST(t1.period AS VARCHAR) + '-1' AS DATE)

这将构建一个类似于{year}-{month}-1的字符串,然后将其解析为DATE,并且应该为您提供给定月/年的第一个日期。

使用DATEFROMPARTS()功能

SQL Server 2012及更高版本实际上支持DATEFROMPARTS()函数,该函数允许您传入各个部分(年,月,日)以构建相应的DATE对象,更容易读取语法:

SELECT DATEFROMPARTS(t1.year,t1.period,1)

此外,如果您需要DATETIME个对象,则可以按预期使用DATETIMEFROMPARTS()