ast*_*rak -2 sql plsqldeveloper
我的选择有时间问题。DB 中的时间与系统时间不同,所以我想我需要使用SELECT SYSDATE FROM DUAL但它在另一个选择中不起作用。我使用 PL/SQL 开发人员。
SELECT t.something1,
ROUND((TRUNC(SELECT SYSDATE FROM DUAL) - 1 + 2),1) AS NAME
FROM customers t
WHERE t.something1 = ROUND((TRUNC(SELECT SYSDATE FROM DUAL) - 1 + 2),1);
Run Code Online (Sandbox Code Playgroud)
我也尝试声明新变量,但我总是收到错误消息。
DECLARE
day DATE
SELECT SYSDATE
INTO day
FROM DUAL
SELECT t.something1,
ROUND((TRUNC(day)- 1 + 2),1) AS NAME
FROM customers t
WHERE t.something1 = ROUND((TRUNC(day) - 1 + 2),1);
Run Code Online (Sandbox Code Playgroud)
仅当您没有可供选择的表时,才必须使用SELECT SYSDATE FROM DUALget SYSDATE。这是因为 aSELECT不带 aFROM对 Oracle 无效,所以当你想使用 SQL 函数而你没有表时,你必须使用DUAL,它是一个特殊的单行单列(命名DUMMY)表。唯一的行具有值X。