REDCap自动调查邀请条件逻辑:Survey 1早于指定日期触发Survey 2
Survey 1达标自动发Survey 2的问题解决
先排查问题出在哪
- 查智能变量的实际返回格式:
[survey-date-completed:survey_1]大概率带时间戳(比如2023-09-03 10:25:00),你直接跟2023-09-03比,系统会把后者默认当成2023-09-03 00:00:00,如果Survey 1是当天凌晨之后完成的,自然返回false。测试时先输出这个变量的真实值,确认格式。 - 核对比较逻辑的方向:如果需求是“2023-09-03之前(不含当天)”,那应该用
<而非<=;如果要包含当天完成的情况,要么把目标日期改成2023-09-04用<,要么把变量转成纯日期再比。 - 确认系统的日期比较规则:有些系统是按字符串顺序比日期,不是按日期逻辑,这时候得用系统自带的日期转换函数,比如把变量转成纯日期格式再对比,比如
DATE([survey-date-completed:survey_1]) <= DATE('2023-09-03')(具体函数名看你用的调研系统文档)。
能用的实现方案
- 方案1:换个目标日期用
<运算符:
这样2023-09-03当天及之前完成的都能触发。[survey-date-completed:survey_1] < 2023-09-04 - 方案2:用日期转换函数统一格式(以常见调研系统为例):
先把完成日期转成不带时间的字符串,再和目标日期比,避免时间戳搞事情。DATE_FORMAT([survey-date-completed:survey_1], 'yyyy-MM-dd') <= '2023-09-03' - 方案3:时间戳直接对比(系统支持的话):
把2023-09-03 23:59:59转成时间戳,和Survey 1完成时间的时间戳比,确保当天所有时间段都被包含。
内容的提问来源于stack exchange,提问作者Sarah Elizabeth S
相关产品推荐
相关产品推荐

