プロが教える店舗&オフィスのセキュリティ対策術

文字列で8桁の日付(例:20041208)を持っている項目の条件に本日日付以上という条件をつけたいのですが、
(例:where NEN >= 本日日付の文字列8桁 )
※NEN:20041208
SQLでシステム日付を文字列8桁にする方法はありますか?
ご教授お願いしますm(_ _)m

A 回答 (2件)

(前にも回答したと思うのですが、入っていないようなので再度入力します)



大小の比較をしたいのでしたら、DATE型を文字列にしても駄目で、文字列をDATE型に変換する必要があります。
8文字で表された日付をDATE型に変換する関数はDB2には用意されていないので、自分で用意する必要があります。

CREATE FUNCTION STR2DATE (dateString VARCHAR(8))

RETURNS DATE

SPECIFIC STR2DATE

LANGUAGE SQL

DETERMINISTIC

CONTAINS SQL

BEGIN ATOMIC

DECLARE ret VARCHAR(10);



IF (LENGTH(dateString) != 8) THEN

RETURN DATE('1970-01-01');

END IF;



set ret = LEFT(dateString,4) || '-' || SUBSTR(dateString,5,2) || '-' || RIGHT(dateString,2);



RETURN ret;

END@

という感じでSTR2DATE関数を用意しておいて、
SELECT ... WHERE STR2DATE(NEN) >= CURRENT DATE
とやればうまくいくのではないでしょうか。
    • good
    • 1

本家IBMさんのページです。



カスタム日付/時刻形式の設定 を参照ください。

TO_CHAR([列名], 'yyyymmdd') では駄目なのかな?

参考URL:http://www-6.ibm.com/jp/software/data/developer/ …
    • good
    • 5

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す