select 'BETWEEN TO_DATE(''' || to_char(CURRENT_DATE, 'dd/MM/yyyy 00:00:00') || ''', ''DD/MM/YYYY HH24:MI:SS'') AND TO_DATE(''' || to_char(CURRENT_DATE 1, 'dd/MM/yyyy 00:00:00')
這個查詢有什么不好的嗎?這不是完整的查詢,它只是其中的一部分。我不會拋出這個錯誤:
ORA-01756: quoted string not properly terminated
uj5u.com熱心網友回復:
使用 q 參考機制。
順便說一下,您的代碼可以簡化為
select q'[between trunc(current_date) and trunc(current_date 1)]' result
from dual;
不需要to_char然后to_date current_date; 它已經是 DATE資料型別,只需洗掉(截斷到午夜)時間組件。
順便說一下#2,你使用的格式掩碼是錯誤的;應該dd/mm/yyyy hh24:mi:ss(不是dd/mm/yyyy 00:00:00)
如果你堅持(雖然,我不知道你為什么要),然后
select q'[between to_date(to_char(current_date , 'dd/mm/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss')]' ||
q'[ and to_date(to_char(current_date 1, 'dd/mm/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss')]'
as result
from dual;
它有效嗎?是的:
SQL> select q'[between to_date(to_char(current_date , 'dd/mm/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss')]' ||
2 q'[ and to_date(to_char(current_date 1, 'dd/mm/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss')]'
3 as result
4 from dual;
RESULT
--------------------------------------------------------------------------------
between to_date(to_char(current_date , 'dd/mm/yyyy hh24:mi:ss'), 'dd/mm/yyyy
hh24:mi:ss') and to_date(to_char(current_date 1, 'dd/mm/yyyy hh24:mi:ss'),
'dd/mm/yyyy hh24:mi:ss')
SQL>
現在將結果復制/粘貼到另一個查詢中并驗證它:
SQL> select *
2 from dual
3 where sysdate
4 -- this is the "result":
5 between to_date(to_char(current_date , 'dd/mm/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss') and to_date(to_char(current_date 1, 'dd/mm/yyyy hh24:mi:ss'), 'dd/mm/yyyy hh24:mi:ss')
6 ;
D
-
X
SQL>
沒有失敗吧?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/376663.html
