合并字段中日期的正确比较(Microsoft Word)
Volker在比较合并字段中的日期时遇到问题。他的数据库包含一个“生日”字段,(显然)该字段包含数据库中每个人的生日。在合并每条记录时,他希望将“出生日期”字段与参考日期进行比较,然后根据结果采取一些措施。他尝试使用的逻辑如下所示:
{IF {MERGEFIELD Birthdate} > "02/26/1981" "Under 30" "Over 30"}
问题是比较无法正常进行。它不会返回一致的结果。一种可能的解决方案是以下列方式在合并字段中使用格式切换:
{IF {MERGEFIELD Birthdate\@"MM/DD/YYYY"} > "02/26/1981" "Under 30" "Over 30"}
这样会将传入的信息转换为可比较的格式。但是,通过这种方法获得的结果可能取决于数据源的特性,而与Word无关。您也可以尝试将日期设置为以年为单位的格式,例如:
{IF {MERGEFIELD Birthdate\@"YYYY/MM/DD"} > "2011/02/26" "Under 30" "Over 30"}
如果比较仍然产生不一致的结果,则唯一的解决方案可能是在日期(实际上是在出生日期和参考日期)进行数学转换,以便进行实际的数值比较。您可以通过将日期转换为儒略值来实现,这需要一个非常复杂的合并字段,如此处所示:
{IF {QUOTE {SET a{=INT((14-{MERGEFIELD BIRTHDATE \@ M})/12)}} {SET b{={MERGEFIELD BIRTHDATE \@ yyyy}+4800-a}} {SET c{={MERGEFIELD BIRTHDATE \@ M}+12a-3}} {SET d{MERGEFIELD BIRTHDATE \@ d}} {SET jd{=d+INT((153c+2)/5)+365*b+INT(b/4)-INT(b/100)+INT(b/400)-32045}} {jd \#,0}} > 2,443,056 "over 30" "under30"}
这种方法可能看起来令人生畏,但这只是某些情况下必需的蛮力方法。
_WordTips_是您进行经济有效的Microsoft Word培训的来源。
(Microsoft Word是世界上最流行的文字处理软件。)本技巧(356)适用于Microsoft Word 97、2000、2002和2003。您可以找到Word(Word 2007)的功能区界面的本技巧版本。和更高版本)在这里: