Sql 选择一个日期字段与另一个日期字段的比较结果+24小时
在sybase ase 15.5中,我需要从一个表中提取距离另一个表中的日期只有24小时的值 这是我的错误代码:Sql 选择一个日期字段与另一个日期字段的比较结果+24小时,sql,datetime,sap-ase,Sql,Datetime,Sap 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_GeneralD
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小时
im获取的错误为INT与DATETIME不兼容
非常感谢您的帮助
谢谢使用函数dateadd对日期时间中的1天进行求和:
dateadd(dd, 1, P_MonVals.entertime)
参考:。查看函数,并在entertime中添加一天
文档中的示例:
为日期添加一天:
declare @a date
select @a = "apr 12, 9999"
select dateadd(dd, 1, @a)
就你而言
...
where p_generaldata.admissiontime < dateadd(dd, 1, P_MonVals.entertime)
您想使用以下功能:
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
我添加了你的行,但它仍然返回了入学日期后三天的周一的行。im所关注的是入院时间,比如2014年4月14日20:00:00,它将返回monvals的行,输入时间介于2014年4月14日20:00:00到2014年4月15日20:00:00之间,因此并非所有结果都来自第二天,而是从入院时间算起的24小时。非常感谢你能不能用dateadd,在这种情况下用小时代替天?谢谢伙计。解决方案是在dateadd…中,其中P_MonVals.entertime介于P_generaldata.admissiontime和dateaddhh,24,P_generaldata.admissiontime…之间。。。。谢谢,没问题,很高兴它有帮助。