使用DATE表达式时无法在MS SQL Server中执行CAST功能。
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 ...
需要帮助/ appreaciated
答案 0 :(得分:2)
如果您使用的是SQL Server 2012,则可以使用DATEFROMPARTS
函数来形成日期,DateDiff
以查找两个日期之间的差异,最后cast
(您真的需要??)你的结果为整数
CAST(DATEDIFF(day, DATEFROMPARTS(2012,10,1 ), DateHired)/365 AS INTEGER)
答案 1 :(得分:0)
使用字符串减法会给您一个错误。
Select '2015-05-20' - '2015-05-19'
错误:数据类型varchar和varchar在减法运算符中不兼容。
减去两个日期将导致另一个日期。
尝试使用datediff来获得你想要的东西,这是一个数字:
datediff(day, '2012-10-01' , DateHired) / 365
DATEADD函数,如您的错误消息所示,有三个参数,如下所示:
DATEADD (datepart , number , date )
除非您在日期中添加特定号码,否则我会使用DATEDIFF。