Sql server 无法使用强制转换函数
使用日期表达式时,我无法在MS SQL Server中执行强制转换函数Sql server 无法使用强制转换函数,sql-server,datetime,casting,Sql Server,Datetime,Casting,使用日期表达式时,我无法在MS SQL Server中执行强制转换函数 CAST(CAST('2012-10-01' - DateHired AS INTEGER) / 365 AS INTEGER 错误消息;在减法运算符中,数据类型varchar和date不兼容 DATEADD ( DAY, '2012-10-01' - DateHired)/ 365 AS YearsWithSchool 错误消息;dateadd函数需要3个参数 是的,我尝试了所有逻辑日期和时间数据类型avbl 需要
CAST(CAST('2012-10-01' - DateHired AS INTEGER) / 365 AS INTEGER
错误消息;在减法运算符中,数据类型varchar和date不兼容
DATEADD ( DAY, '2012-10-01' - DateHired)/ 365 AS YearsWithSchool
错误消息;dateadd函数需要3个参数
是的,我尝试了所有逻辑日期和时间数据类型avbl
需要帮助/给予帮助使用字符串进行减法将给您带来错误
Select '2015-05-20' - '2015-05-19'
错误:数据类型varchar和varchar在减法运算符中不兼容
DATEADD ( DAY, '2012-10-01' - DateHired)/ 365 AS YearsWithSchool
减去两个日期将产生另一个日期
尝试使用datediff获得您想要的,这是一个数字:
datediff(日期,'2012-10-01',DateHired)/365
如错误消息所示,DATEADD函数包含三个参数,如下所示:
DATEADD (datepart , number , date )
除非您要为日期添加特定的数字,否则我将使用DATEDIFF。如果您使用的是SQL Server 2012,您可以使用
DATEFROMPARTS
函数来形成日期,DATEDIFF
来查找两个日期之间的差异,最后将结果转换为整数(您真的必须吗?)
CAST(DATEDIFF(day, DATEFROMPARTS(2012,10,1 ), DateHired)/365 AS INTEGER)
太棒了!!你的回答成功了。我真的很感谢你的帮助。