0

IN Netezza で、日付の値が有効かどうかを確認しようとしています。SQLサーバーのISDATE関数のようなもの。

有効ではない 11/31/2013 のような日付を取得しています。Netezza でこの日付が有効かどうかを確認できるので、プロセスから除外します。

ありがとう

4

2 に答える 2

0

日付が有効かどうかを確認する Netezza 関数が組み込まれているとは思えません。これを行うために LUA 関数を作成するか、次のように「日付」ルックアップ テーブルに結合してみてください。

2 つの列を持つテーブルを作成します。

DATE_VALUE date
DATE_STRING varchar(10)

有効な日付のデータをこのテーブルにロードします (お気に入りのツール、Excel、Unix などでファイルを生成します)。これを使用するのがこのチェックだけの場合、DATE_VALUE ごとに複数の行 (異なる「有効な」形式) が存在することさえあります。例えば1900年から2100年までを記入すれば、その範囲内のデータであれば問題ありません。また、これは小さなテーブルでもあり、200 年間で 7,300 行しかありません。必要に応じてさらに追加します。NZ の日付データ型は AD1 から AD 9999 までなので、わずか 340 万行 (NZ では少ない) で完全に埋めることができます。

次に、無効な日付を含む行を分離するには、DATE_STRING でこのテーブルにaJOINまたはEXISTS/を使用します。NOT EXISTSテーブルが非常に小さいため、netezza はテーブルをすべての SPU にブロードキャストする可能性が高く、パフォーマンスへの影響はわずかです。

于 2013-08-20T18:17:51.063 に答える
0

Netezza Analytics Package 3.0 (無料ダウンロード) には、日付値を検証するいくつかの LUA 関数、isdate() および todate() が付属しています。インストール/コンパイルが非常に簡単です。

于 2014-03-05T16:35:28.533 に答える