oracle10g - 如何仅更新 oracle 中日期时间字段中的 "hour"部分?

标签 oracle10g

有没有办法只更新日期时间字段中的小时部分?如果没有,如何更新 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”。

最佳答案

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

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;  

如果您想修改相对于其当前值的时间部分(例如,增加 2 小时或减去 3 秒),那么日期算术有一些选择。 Oracle 文档对这些事情非常有用。

关于oracle10g - 如何仅更新 oracle 中日期时间字段中的 "hour"部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9995472/

相关文章:

来自 Oracle 中 dblink 等待事件的 SQL*Net 消息

sql - 提取oracle中alter语句的ddl

sql - 在 PL/SQL 中创建临时表

sql - ORACLE SQL 获取从 2 个选择语句中检索的两个值的差异

java - 将 BLOB 文件从本地插入数据库

sql - 在Oracle查询中显示总计、小计、百分比

oracle - 如何将 Google Maps mysql 查询转换为 oracle,是否会影响性能?

php - 如何将Oracle 10G数据放入PHP数组中,然后将其转换为JavaScript数组?

sql - 使用联接和 Group by 子句更新查询

oracle - 如何查找Oracle中授予用户的权限和角色?