在Microsoft Access中如何获取出生日期对应的星期全称?
获取出生日期对应的完整星期名称
错误原因分析
你之前的表达式存在两个关键问题:
- 硬编码了固定日期
2003;1;1,没有引用实际字段值; - Access表达式中参数分隔符应为逗号(
,)而非分号(;),且未将文本类型的月份名称转换为数字,导致DateSerial无法生成有效日期,最终返回#Type!错误。
正确计算表达式
要实现需求,需先将文本类型的月份名称转换为数字,再组合三个字段生成日期,最后获取完整星期名称。完整表达式如下:
WeekdayName(Weekday(DateSerial([year_birth], Month(DateValue("1 " & [month_birth] & " 2000")), [day_birth]), 2), False)
表达式拆解
DateValue("1 " & [month_birth] & " 2000"):将英文月份名称转换为可识别的日期(用2000作为占位年份,不影响月份解析);Month(...):从上述日期中提取数字月份;DateSerial([year_birth], ..., [day_birth]):组合年、月、日字段生成完整日期;Weekday(..., 2):计算该日期对应的星期数,参数2表示以周一为一周的第一天(若需以周日为第一天,可改为1);WeekdayName(..., False):将星期数转换为完整名称,False表示返回全称(改为True则返回缩写)。
内容的提问来源于stack exchange,提问作者Денис Попков
相关产品推荐
相关产品推荐

