当前位置: 首页 > 面试题库 >

ORA-01840:输入值不足以使用Select在Oracle Insert中显示日期格式

计向晨
2023-03-14
问题内容

我在下面的查询中,我得到了错误ORA-01840: input value not long enough for date format。该C_DATE列是“日期”数据类型。

INSERT INTO CS_LOG(NAME, ID, C_DATE)
Select MAX(ML.NAME), ML.ID, TO_CHAR(CHK_DATE,'YYYYMM')
from D_ID ML,
     CS_LOG MD
WHERE ML.NAME != MD.NAME
  and ML.ID != MD.ID
  and MD.C_DATE = LAST_DAY(to_date(sysdate,'YYYYMMDD'))
GROUP BY ML.ID, C_DATE;

问题答案:

您可以“以格式插入日期”。日期具有内部表示形式,它们始终具有所有日期/时间组成部分,然后可以根据需要进行格式化以进行显示。

您作为YYYYMM生成的字符串已通过插入隐式转换为日期,因为这是目标列的数据类型。该隐式转换正在使用您的NLS设置,并且因此期望使用更长的值来匹配NLS日期格式。您的字符串与该隐式格式不匹配,这会导致您看到错误。

如果您只对年份和月份感兴趣,那么可以得到的最接近的结果是在当月的第一天午夜存储trunc

INSERT INTO CS_LOG(NAME, ID, C_DATE)
Select MAX(ML.NAME), ML.ID, TRUNC(CHK_DATE,'MM')
from D_ID ML,CS_LOG MD
WHERE ML.NAME != MD.NAME and ML.ID != MD.ID
and MD.C_DATE = LAST_DAY(sysdate)
GROUP BY ML.ID,C_DATE;

我也删除了多余的to_date电话。您也应该考虑切换到ANSI连接语法。

然后,您可以通过c_date查询将其格式化为YYYYMM以便在查询时显示to_char



 类似资料:
  • 我有一个HTML5日期输入,我希望它的值在默认情况下设置为我的模型中的日期属性的值。我对格式化不太在意,因为Chrome似乎根据我的区域设置来决定对我来说,但是理想的格式应该是一致的。 不停摆弄 这是我设置输入的方式: 这在Chrome上运行良好,默认情况下我看到以下内容: (我仍然不太明白,如果Chrome仍然根据我的区域设置对其进行格式化,为什么必须在中给出该值,但这是另一个问题。) 我的问题

  • 问题内容: 在用户更改日期之前,日期输入不会显示日期 jsbin中的示例代码 我需要它才能在稳定的1.2.14版本上工作。可能吗? 问题答案: 我创建了一个简单的指令,以使标准表单元素能够与AngularJS〜1.2.16一起正常工作。 请查看此处以获取详细信息:https : //github.com/betsol/angular-input-date 这是演示:http : //jsfiddl

  • 问题内容: 我正在使用Liferay 6.2,并想使用 liferay-ui:input-date 字段。现场本身工作正常。但是我想更改显示的日期格式 毫米/日/年 至 dd.mm.yyyy 但是该怎么做呢?我看不到有什么衣服可以设置这个… 问题答案: 我查看了输入日期标记库代码,如果要更改模式,则必须修改其代码。文件的路径:\ webapps \ ROOT \ html \ taglib \ u

  • 我有一个带有REST API的Spring Boot应用程序,在一个请求对象中,我声明了一个字段,该字段应该以DDMMYYYY格式保存日期: 在Swagger UI中,请求正文中该字段的示例值始终显示如下(当前日期的格式为YYYY-MM-DD)。 我在pom.xml中有这样的内容: 如何使Swagger UI以DDMMYYYY格式显示示例日期?正如你在我上面的代码中看到的,我输入了@Paramet

  • 当我发送日期时,Thymeleaf日期格式有问题。HTML在h3标记中正确地显示了日期,但不在datepicker的代码中,我不明白为什么.... 为什么它在一个地方用小时显示日期,而在另一个地方却正确地显示日期....输入type=“date”name=“birthdate”id=“birthdate”class=“窗体-控件边际-底部-20”value=“1932-10-10 00:00:00

  • 问题内容: 我知道日期格式,例如 -以格式 显示日期-以格式显示日期 用于例如: 我想要一种可以帮助我显示星期几之类的格式。我只希望将星期几与月份和年份一起显示。你能告诉我这样的格式吗? 问题答案: 这应该显示“ Tue”: 这应该显示“星期二”: 这应该显示“ T”: 因此,您的具体示例为: