选择一个日期字段的结果与另一个日期字段相比+ 24小时

时间:2014-09-16 13:15:21

标签: sql datetime sybase-ase

我需要从sybase ase 15.5中另一个表中的日期起24小时内从一个表中提取值。

这是我的错误代码:

SELECT p_generaldata.admissiontime,*
 FROM   Patient.dbo.P_MonVals P_MonVals 
               INNER JOIN Patient.dbo.P_GeneralData P_GeneralData 
               ON P_MonVals.PatientID=P_GeneralData.PatientID
where  p_generaldata.admissiontime < P_MonVals.entertime +1
order by p_generaldata.patientid ASC

我试图返回p_monvals中的所有行,其中该表中的entertime在入场时间后不到24小时。

  

错误即时获取是INT与DATETIME不兼容

任何帮助非常感谢

谢谢

3 个答案:

答案 0 :(得分:0)

使用函数dateadd将日期时间中的1天相加:

dateadd(dd, 1, P_MonVals.entertime)

参考:Sybase dateadd function

答案 1 :(得分:0)

查看DateAdd功能,并在entertime

中添加一天

docs中的示例:

将一天添加到日期:

declare @a date
select @a = "apr 12, 9999"
select dateadd(dd, 1, @a)

在你的情况下......

...
where  p_generaldata.admissiontime < dateadd(dd, 1, P_MonVals.entertime)

答案 2 :(得分:0)

您想使用dateadd功能:

SELECT p_generaldata.admissiontime, *
FROM Patient.dbo.P_MonVals P_MonVals 
INNER JOIN Patient.dbo.P_GeneralData P_GeneralData 
ON P_MonVals.PatientID=P_GeneralData.PatientID
WHERE p_generaldata.admissiontime < DATEADD(dd, 1, P_MonVals.entertime)
ORDER BY p_generaldata.patientid ASC