Oracle Apex v21.1 配置Date Picker仅允许选择年份的实现问题
Oracle Apex v21.1 Date Picker纯年份选择配置方案
一、Date Picker组件配置步骤
- 进入页面对应Date Picker项的属性面板,「设置」区域保持「日期选择器类型」为默认的弹出式日历
- 修改「格式掩码」为
YYYY,确保输入和显示仅保留年份 - 在「高级」→「初始化JavaScript代码」输入框中添加如下代码,替换占位符为你的实际项ID:
// 替换P1_SELECT_YEAR为你的Date Picker项静态ID apex.items.P1_SELECT_YEAR.widget().datepicker("option", { changeMonth: false, changeYear: true, showButtonPanel: true, dateFormat: "yy", yearRange: "1990:+10", // 可自定义年份范围,示例为1990年到当前时间+10年 onClose: function(dateText, inst) { // 选中后自动赋值为当年1月1日0点,适配TIMESTAMP存储格式 $(this).datepicker('setDate', new Date(inst.selectedYear, 0, 1, 0, 0, 0)); } });
二、TIMESTAMP列适配说明
- 无需修改原有TIMESTAMP类型列的结构:上述配置已自动将选择的年份转换为该年1月1日0点的完整时间值,可直接写入TIMESTAMP列
- 业务逻辑需要提取年份时,直接使用Oracle内置函数
EXTRACT(YEAR FROM 你的TIMESTAMP列名)即可获取数值类型的年份值,无需额外转换 - 表单提交阶段无需自定义处理逻辑,Apex会自动匹配
YYYY格式掩码完成值的类型转换
效果验证
配置完成后点击Date Picker组件,会直接弹出年份选择面板,选中年份后自动关闭面板,输入框仅显示四位年份值,提交后自动写入对应TIMESTAMP列。
内容的提问来源于stack exchange,提问作者ThomasT
相关产品推荐
相关产品推荐

