我有一个带有一列的表(dateDT
),格式为日期时间和年份的变量输入 (@selYear
) 在我的 Select 中,格式为 int。
如何使用变量输入替换表中日期中的年份并以日期时间格式返回结果(在选择中)?
我已尝试以下操作,但这返回错误的日期/年份:
CONVERT(DATETIME, (@selYear + MONTH(dateDT) + DAY(dateDT))) AS dateDT,
Example:
@selYear = 2014
dateDT = 2010-05-02 00:00:00.000
在这种情况下我的结果应该是:
dateDT = 2014-05-02 00:00:00.000
解决方案使用DATEADD功能:
DECLARE @selYear VARCHAR(4) = 2014
DECLARE @dateDT DATETIME = '2010-05-02 00:00:00.000'
SELECT DATEADD(YEAR,@selYear - YEAR(@dateDT),@dateDT)
这是比当前年份更小的示例:
DECLARE @selYear INT = 2009
DECLARE @dateDT DATETIME = '2010-05-02 00:00:00.000'
SELECT DATEADD(YEAR,@selYear - YEAR(@dateDT),@dateDT)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)