3

今日は火曜日です。

この SQL ステートメントを実行すると、火曜日ではないと表示されるのはなぜですか?

SELECT 
CASE 
WHEN TO_CHAR(sysdate, 'Day') = 'Tuesday' THEN 'Its Tuesday'
ELSE 'Its Not Tuesday'  
END AS case_result,
TO_CHAR(sysdate, 'Day') AS day
FROM DUAL

戻り値:

CASE_RESULT DAY
It's Not Tuesday    Tuesday
4

4 に答える 4

8

このようにしてみて、

SELECT CASE 
       WHEN trim(TO_CHAR(SYSDATE, 'Day')) = 'Tuesday' THEN 'Its Tuesday'
       ELSE 'Its Not Tuesday'  
       END AS case_result,
       TO_CHAR(SYSDATE, 'Day') AS DAY
FROM  DUAL;

FmDayまたは、ajmalmhd04 が提案したように、次のように試すことができます。

SELECT CASE 
       WHEN TO_CHAR(SYSDATE, 'FmDay') = 'Tuesday' THEN 'Its Tuesday'
       ELSE 'Its Not Tuesday'  
       END AS case_result,
       TO_CHAR(SYSDATE, 'Day') AS DAY
FROM  DUAL;
于 2013-10-08T09:55:55.463 に答える
0
SELECT 
CASE 
WHEN rtrim(TO_CHAR(sysdate, 'Day')) = 'Tuesday' THEN 'Its Tuesday'
ELSE 'Its Not Tuesday'  
END AS case_result,TO_CHAR(sysdate, 'Day') AS day
FROM DUAL
于 2013-10-08T10:23:14.113 に答える
0

さて、これ:

SELECT TO_CHAR(sysdate, 'Day') FROM dual;

私の国では「Wtorek」と言います... たぶん、英語ではなくあなたの言語で週の名前を取得していますか?

以下を使用して、データベースに設定されている DATE LANGUAGE を確認できます。

SELECT * FROM nls_database_parameters WHERE parameter = 'NLS_DATE_LANGUAGE';
于 2013-10-08T09:55:05.187 に答える