我正在尝试更新sql表中的日期。我正在使用Peoplesoft Oracle。当我运行这个查询:
Select ASOFDATE from PASOFDATE;
我得到4/16/2012
我尝试运行这个查询
UPDATE PASOFDATE SET ASOFDATE = '11/21/2012';
但它不工作。
有谁知道我会如何将日期更改为所需的日期?
这是基于以下假设:您收到有关日期格式的错误,例如在数字预期时无效的月份值或非数字字符。
原文链接:https://www.f2er.com/oracle/205793.html数据库中存储的日期没有格式。当您查询您的客户端格式化显示日期的日期,为4/16/2011。通常使用相同的日期格式来选择和更新日期,但在这种情况下,它们看起来是不一样的 – 所以你的客户端显然比sql * Plus更复杂。
当您尝试更新它时,它使用默认值date format model.由于它的显示方式,您假定是MM / DD / YYYY,但似乎不是。你可以找出它是什么,但最好不要依赖默认或任何隐式的格式模型。
无论是否是问题,您应该始终指定日期模型:
UPDATE PASOFDATE SET ASOFDATE = TO_DATE('11/21/2012','MM/DD/YYYY');
由于您没有指定时间组件 – 所有Oracle DATE列都包含一个时间,即使是午夜,也可以使用date literal:
UPDATE PASOFDATE SET ASOFDATE = DATE '2012-11-21';
您应该检查当前值不包含时间,尽管列名称不表示它。