如何在INSERT语句插入的日期值中添加当前系统HH:MM格式的时间
方式1:字符串拼接后转日期(逻辑直观易理解)
你可以将固定日期字符串和当前系统时间的时分部分拼接后,再统一转为日期类型插入,写法如下:
INSERT INTO tab1 VALUES ( to_date( '11-OCT-2021 ' || to_char(sysdate, 'HH24:MI'), 'DD-MON-YYYY HH24:MI', 'NLS_DATE_LANGUAGE=AMERICAN' ) );
说明:
to_char(sysdate, 'HH24:MI')用于获取当前系统时间的24小时制时分,如果你需要12小时制把HH24改成HH即可- 追加
NLS_DATE_LANGUAGE参数是为了避免数据库默认语言非英文时,OCT这类英文月份缩写解析报错
方式2:日期算术运算(性能更优)
不需要经过多次字符串转义,直接通过日期运算给固定日期追加当前时分,写法如下:
INSERT INTO tab1 VALUES ( to_date('11-OCT-2021', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=AMERICAN') + (trunc(sysdate, 'MI') - trunc(sysdate)) );
说明:
trunc(sysdate)会将当前时间的时分秒清零,得到当天0点的日期trunc(sysdate, 'MI')会将当前时间的秒数清零,只保留到分钟精度- 两者相减得到当前时分对应的天数小数,追加到固定日期后就能得到你需要的带当前时分的日期值
内容的提问来源于stack exchange,提问作者koa73
相关产品推荐
相关产品推荐

