Oracle10g “如何仅更新”;小时“;oracle中日期时间字段的一部分?

Oracle10g “如何仅更新”;小时“;oracle中日期时间字段的一部分?,oracle10g,Oracle10g,有没有办法只更新DateTime字段中的小时部分??如果没有,如何在Oracle中更新时间部分?我试过这个-> update tab_name set C_Name=to_date('04/03/2012 00:31:00','MM/DD/YYYY HH:MI:SS AM') where C_Name1=10484; 无法工作,因为我正在以小时为单位更新“00”。如果我知道我只想更新一部分时间,我可能会在适当的位置将值转换为字符串,然后转换回日期。假设我希望会议记录为“31”: 如果要

有没有办法只更新DateTime字段中的小时部分??如果没有,如何在Oracle中更新时间部分?我试过这个->

update tab_name 
set C_Name=to_date('04/03/2012 00:31:00','MM/DD/YYYY HH:MI:SS AM') 
where C_Name1=10484;  

无法工作,因为我正在以小时为单位更新“00”。

如果我知道我只想更新一部分时间,我可能会在适当的位置将值转换为字符串,然后转换回日期。假设我希望会议记录为“31”:


如果要修改相对于其当前值的时间部分(例如,添加2小时或减去3秒),则有一些日期算术选项。Oracle文档非常适合这些方面。

欢迎使用Stack Overflow!我冒昧地把你的问题格式化了。将来,请在发布问题之前将问题格式化。
C_NAME
是日期吗?这将如何只更新时间?你想忽略字符串的日期部分吗(即更新
C_NAME
为当前12:31:00 AM的任何日期
C_NAME
)是的,Justin,C_NAME是一个日期时间字段。不,我不想在这里忽略任何内容,正如yu所说,这里只有“12”必须替换为“00”,应该是00:31:00,谢谢你的回复,但是当我这样做的时候,这对我来说不起作用--->更新选项卡\u name set C\u name=to\u date(to_char(C\u name,'MM/DD/yyyyy“00:HH:SS'),'MM/DD/yyyyyy h24:MI:SS'),其中C\u name=10484;。。。当我把它设置为“00”时,它仍然将它保存为“12”…有什么解决方案吗?@palak-你确定你没有以12小时时间格式而不是24小时时间格式显示它吗?如果您使用
HH24
格式掩码显示时间,它将以24小时时间格式显示,因此在午夜到凌晨1点之间,小时将为“00”。如果使用
HH
格式掩码显示时间,它将以12小时时间格式显示,因此小时将始终介于1和12之间。在数据库中,日期不是以某种格式存储的,它们总是以非人类可读的压缩二进制格式存储。日期必须转换成字符串才能成为人类可读的Justin,在UI I
m中显示LocalTime,但在数据库I
m中以12小时格式保存,现在主要的问题是->当datetime在上午6点到6:30之间保存时,在UI it
s中显示为PM。我想在数据库中,我必须像yu所说的那样将其设置为HH24。。
update tab_name 
set C_Name=
  to_date( 
    to_char(C_Name, 'MM/DD/YYYY HH24:"31":SS'),
    'MM/DD/YYYY HH24:MI:SS'
  ) 
where C_Name1=10484;