oracle - sysdate 正确时如何将值插入表中
问题描述
当 sysdate 正确时,如何将值插入表中。这是我拥有的代码,但 stat 字段保持空白
begin
for idx in 1 .. apex_application.g_f01.count
loop
if apex_application.g_f01(idx) is not null then
update outgoing
set STAT ='CONFIRM'
WHERE FILENUMBER = APEX_APPLICATION.G_F01(IDX)
AND DEPARTMENT = apex_application.g_f03(idx)
and OUTGOINGDATE= sysdate
;
end if;
end loop;
end;
解决方案
如果您验证apex_application.g_f0x
是正确的(即表示您认为它们正确的列 - 如果不是,请在浏览器中使用检查元素),那么最可疑的情况是:
and OUTGOINGDATE = sysdate
SYSDATE
是一个返回日期和时间的函数,例如
SQL> alter session set nls_date_format = 'dd.mm.yyyy hh24:mi:ss';
Session altered.
SQL> select sysdate from dual;
SYSDATE
-------------------
29.01.2019 22:02:32
SQL>
我怀疑该OUTGOINGDATE
列是否包含当前日期/时间值。一种可能解决此问题的选项是截断一个或两个值,例如
and OUTGOINGDATE = trunc(sysdate)
或者
and trunc(OUTGOINGDATE) = trunc(sysdate)
asTRUNC
函数删除了时间部分,因此您只比较日期。请注意,第二个选项防止在列上使用索引(如果存在)OUTGOINGDATE
;如果表包含的行不多,它不会导致问题,但如果表很大,则可能(并且可能会)。不过,有一种解决方法 - 例如,您可以使用,
and outgoingdate >= trunc(sysdate)
and outgoingdate < trunc(sysdate + 1)
如果不是这种情况,请检查OUTGOINGDATE
列的值并采取相应措施。如果您不确定该怎么做,请提供更多信息。
推荐阅读
- jquery - jquery自动完成文本输入美国州每个州去不同的页面不区分大小写
- c++ - 如何在 C/C++ 10.5 章节数值配方中调用** var
- python - 在字符矩阵中递归搜索单词
- android - Android 测试 GitHub 操作:没有这样的文件或目录,打开 'undefined/licenses/android-sdk-arm-dbt-license'
- python-3.x - 在字典中附加一个 int 键
- c++ - c++ 中双精度(与长双精度)的相等(==)
- typescript - 从其他项目文件导入类时,Monorepo 避免(找不到模块“lib”)
- java - 将 MouseListener 添加到 jComboBox
- php - 查找数组的第 i 个元素的乘积,使得该乘积不包含 i
- python - 如何广播将每个 ID 的第一个日期作为列添加到多索引数据帧?