database - 出现 SQL 错误:ORA-01847:运行我的语句时,月中的某天必须介于 1 和月的最后一天之间
问题描述
伙计们不知道为什么我在标题中收到错误。请参见下文,非常感谢下面插入语句的任何帮助:
提前致谢
INSERT INTO RUN_DATA VALUES ('15-JUL-18','5.00K','64:00','233','6','6','17.13','0')
Error report -
SQL Error: ORA-01847: day of month must be between 1 and last day of month
01847. 00000 - "day of month must be between 1 and last day of month"
*Cause:
*Action:
Name Null Type
---------------- ---- ------------
RUN_DATE DATE
RUN VARCHAR2(8)
RUN_TIME TIMESTAMP(6)
CALORIES NUMBER(4)
SITUPS NUMBER(3)
PRESSUPS NUMBER(3)
WEIGHT NUMBER(4,2)
WEIGHT_LOSS_GAIN NUMBER(2)
PARAMETER VALUE
------------------------------ ----------------------------------------------------------------
NLS_DATE_FORMAT DD-MON-RR
SYSDATE
---------
21-JUL-18
解决方案
我建议你使用INTERVAL DAY TO SECOND
forRUN_TIME
而不是TIMESTAMP
此外,在插入中指定所有列名。
CREATE TABLE RUN_DATA (
RUN_DATE DATE ,
RUN VARCHAR2(8) ,
RUN_TIME INTERVAL DAY TO SECOND ,
CALORIES NUMBER(4) ,
SITUPS NUMBER(3) ,
PRESSUPS NUMBER(3) ,
WEIGHT NUMBER(4,2) ,
WEIGHT_LOSS_GAIN NUMBER(2)
);
ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-RR'; --alternatively use DATE literal or TO_DATE
INSERT INTO run_data
(run_date,
run,
run_time,
calories,
situps,
pressups,
weight,
weight_loss_gain)
VALUES ('15-JUL-18', --or DATE '2018-07-15'
'5.00K',
interval '64' minute, --specifying proper interval
233,
6,
6, --quotes not needed for number types
17.13,
0);
推荐阅读
- reactjs - 为什么在传递给 onClick 的箭头函数中的函数调用不起作用?
- python - 使用 lambda 按姓氏对作者姓名进行排序
- html - Excel VBA宏在网站上上传文件
- java - 数据集过滤器以意想不到的方式工作
- php - 使用 Sentinel 时不支持 Redis HMGET
- mysql - 如何在 Docker 上使用与 MySQL 的加密连接
- sql - 获取 SQL Server 中每个插入的 id
- android - 有没有办法通过点击网页中的按钮来触发后退按钮?
- c++ - 从用户那里获得无限量的输入,而不是打印最大的 3 ,而不使用数组
- python - SSH 终端中的 sudo 权限被拒绝