【发布时间】:2016-03-03 00:02:22
【问题描述】:
我在这里要做的是向 GETDATE() 添加一个时间组件,因为它正在转换为 varchar(25)。这是我的声明,我该怎么做?
CONVERT(Varchar(25),YEAR(GETDATE())-1)
会不会是 CONVERT(Varchar(25),year(getDate()) -1)
这个 CONVERT 实际上是:
DATEADD(m, 6,CAST(CONVERT(Varchar(25),MONTH(tblDateApt. Date)) +
'/' + CONVERT(Varchar(25),DAY(tblDateApt. Date))
+ '/' + CONVERT(Varchar(25),YEAR(GETDATE())-1) As DateTime))
问题是当我在闰年日期运行此语句时出现错误。我正在尝试在 getDate 转换为 DATETIME 之前添加一个时间
编辑 2
我只是想让它返回一个值...
select DATEADD(m, 6,CAST(CONVERT(Varchar(25),MONTH('2/29/2016')) + '/' + CONVERT(Varchar(25),DAY('2/29/2016')) + '/' + CONVERT(Varchar(25),YEAR(GETDATE())-1) As DateTime))
【问题讨论】:
-
对我来说似乎是XYPropblem。你的目标是什么?
-
当我在闰年执行 CONVERT(varchar25),year(GetDate())-1) 时,我收到一个错误,因为它试图回到 2/29/2015 - 但我知道我是否可以向其中添加时间组件,它会简单地回到 2/28/2016。当我执行 SELECT dateadd(yy,-1,'2/29/2016') 时,它给了我 2/28/2016 但它在此查询中不起作用
-
tblDAteApt 中的数据是什么样的?您能否展示一些您遇到问题的记录的示例输入以及 DAteAdd 的预期输出?
-
@HLGEM 所有日期都是日期时间。当我在闰日运行此 DATEADD 时,在本例中为 '2/29/2016' 我收到一个错误:将 varchar 数据类型转换为日期时间数据类型导致值超出范围。
-
再一次,你的目标是什么?看来您正在寻求错误的解决方案,所以请描述问题。
标签: sql-server dateadd getdate