Sta*_*ver 25 sql oracle date peoplesoft
我试图更新SQL表中的日期.我正在使用Peoplesoft Oracle.当我运行此查询时:
Select ASOFDATE from PASOFDATE;
Run Code Online (Sandbox Code Playgroud)
我得到4/16/2012
我试过运行这个查询
UPDATE PASOFDATE SET ASOFDATE = '11/21/2012';
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
有谁知道如何将日期更改为所需的日期?
Ale*_*ole 74
这是基于您收到有关日期格式的错误的假设,例如无效月份值或预期数字时的非数字字符.
存储在数据库中的日期没有格式.当您查询客户端格式化显示日期的日期时,如4/16/2011.通常使用相同的日期格式来选择和更新日期,但在这种情况下它们看起来是不同的 - 例如,您的客户端显然正在做一些比SQL*Plus更复杂的事情.
当您尝试更新它时,它使用默认的日期格式模型.因为它是如何显示你假设的那样MM/DD/YYYY,但似乎不是.你可以找出它是什么,但最好不要依赖默认或任何隐式格式模型.
无论这是否是问题,您应始终指定日期模型:
UPDATE PASOFDATE SET ASOFDATE = TO_DATE('11/21/2012', 'MM/DD/YYYY');
Run Code Online (Sandbox Code Playgroud)
由于您没有指定时间组件 - 所有Oracle DATE列都包含时间,即使它是午夜 - 您也可以使用日期文字:
UPDATE PASOFDATE SET ASOFDATE = DATE '2012-11-21';
Run Code Online (Sandbox Code Playgroud)
您应该检查当前值是否包含时间,尽管列名称表明它不包含时间.
小智 8
设置日期和时间的方法如下:
update user set expiry_date=TO_DATE('31/DEC/2017 12:59:59', 'dd/mm/yyyy hh24:mi:ss') where id=123;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
306043 次 |
| 最近记录: |