作爲替代TRIM()
或使用縮寫形式與DY
格式元素,你也可以使用the FM
fill-mode format modifier來獲得完整的日期名不填充:
V2:=TO_CHAR(V,'FMDAY');
IF V2='SUNDAY' THEN
...
當然,這並不搞亂你顯示既然你那麼使用相同的V2
值,所以你會看到:
FRIDAY19-SEP-14
SATURDAY20-SEP-14
TODAY IS SUNDAY
SUNDAY21-SEP-14
MONDAY22-SEP-14
TUESDAY23-SEP-14
WEDNESDAY24-SEP-14
兩個DAY
和DY
由你ñ影響LS設置,所以如果誰運行這個恰好是在不同的語言環境,這可能無法按預期工作;例如,對於講法語的國家/地區的某個人,將會看到DIMANCHE
,這不等於字符串字面值'SUNDAY'
。您可以通過指定的語言要使用去除可能的二義:
V2:=TO_CHAR(V,'FMDAY','NLS_DATE_LANGUAGE=ENGLISH');
這似乎有點小題大做,但如果你比較的結果,而不是僅僅顯示它,這是一個更加安全。既然你要顯示也可以通過執行TO_CHAR()
兩次獲得兩個:
alter session set NLS_DATE_LANGUAGE=SPANISH;
DECLARE
V DATE :=TO_DATE (&H, 'DDMMYYYY');
V1 DATE:=V+6;
BEGIN
WHILE V<V1 LOOP
IF TO_CHAR(V,'FMDAY','NLS_DATE_LANGUAGE=ENGLISH')='SUNDAY' THEN
DBMS_OUTPUT.PUT_LINE('TODAY IS SUNDAY');
END IF;
DBMS_OUTPUT.PUT_LINE(TO_CHAR(V,'DAY')||V);
V:=V+1;
END LOOP;
END;
/
VIERNES 19-SEP-14
SÁBADO 20-SEP-14
TODAY IS SUNDAY
DOMINGO 21-SEP-14
LUNES 22-SEP-14
MARTES 23-SEP-14
MIÉRCOLES24-SEP-14
的比較總是在固定的語言,但顯示將在會話語言。
您也可以輕易地同時顯示週日日期和爲此在普通的SQL,除了「今天是星期天」的消息;或者使用更簡單的PL/SQL循環。取決於你的實際使用情況。
但你爲什麼喊? – Mureinik 2014-09-20 08:31:10
雅儀式,對不起瓶蓋被打開..再次抱歉 – user2686661 2014-09-20 08:36:48
所以你住在一個全大寫的國家? – GolezTrol 2014-09-20 08:38:17