【发布时间】:2020-02-19 14:52:38
【问题描述】:
在没有 sql oracle 活动的几年之后...我正在尝试按日期更新 oracle SQL 上的某些状态代码。 日期为法文格式 DD/MM/YYYY
date_start 列上的格式是时间戳,格式为“18/10/2019 23:15:26”,我需要在日期 -1 月进行过滤。并使用 sqlplus...
我是这样想的:
UPDATE contexte_ihm
SET set status_code =1000 status_name = (select FLUX_STATUS_NAME from flux_status_ref where FLUX_STATUS_CD=1000)
WHERE status_code=9999
AND DATE_START = TO_TIMESTAMP( '31/01/2000 08-00-00', 'DD/MM/YYYY HH24-MI-SS' )
我试过这个:
SELECT * FROM contexte_ihm WHERE status_code =1000 AND DATE_START =to_date('19/12/2019','dd/mm/yyyy')
2 ;
no rows selected
<NOW()-30 NOW 是无效标识符...
我需要将 95000 行从一个月前更新到更早的日期...
【问题讨论】:
-
日期或时间戳没有格式;默认情况下,您的客户端使用您的 NLS 设置将内部表示格式化为人类可读的内容。而
now()不是Oracle 函数;等效为sysdate或current_date。
标签: sql oracle sql-update