2016-12-22 1 views
0

DIM_DT_IDの値をMMddYYに変換しようとしています。私はそれを成功させました。しかし、最終的に私は文字の値と日付を比較しているため、クエリは失敗します。私はMM_Ddy_IDの値をMMddyy形式で取得でき、そのデータ型はまだDATEのままですか? ここでDIM_DT_ID SELECT DIM_DT_ID DIM_DT_ID> = FORMATDATE( 'MMddyy'、ADDDAY(TO_date( 'yyyy-MM-dd'、 '2016-12-21')、-25)); from abc; よろしくお願いします。 Ajayデノボデータベースの日付形式を変換する

+0

DIM_DT_IDとは何ですか?それは数字ですか?そのフィールドの値のいくつかはどのように見えるのですか? –

答えて

0

文字列を日付フィールドに変換するには、 "to_date()"(日付を返します)を使用します。

その後、文字列に変換しないで、そのフィールドを日付として残してください(文字列を返す "Formatdate()"は使用しないでください)。

ので:私の例では

SELECT * 
FROM MyTable 
WHERE now() >= to_date('yyyy-MM-dd',myStringFieldThatLooksLikeADate) 

、「今、()は、」日付、およびので、TO_DATE関数の出力がある...ので、あなたは、比較を行うことができます。

あなたが戻っは、FormatDateを使用して文字列に日付を変換しようとした場合、それは動作しません。

#This doesn't work: 
SELECT * 
FROM MyTable 
WHERE now() >= formatdate('MMddyy',to_date('yyyy-MM-dd',myStringFieldThatLooksLikeADate)) 

我々は(「今、()」)の日付を比較しているので、それが機能しないと文字列。

+0

ありがとうございます。私はすでにこれを試しましたが、問題はMMDDYY形式の日付を比較したいということです。 –

+0

私は理解しません...通常、2つの日付オブジェクトを比較します...フォーマットは、通常、人間が読める形式の基本オブジェクトであるため、フォーマットは問題になりません。したがって、2つの日付オブジェクトを比較する場合は、両方のオブジェクトが日付であることを確認する必要があります.Denodoでは、文字列を "to_date()"で日付に変換します。他のオブジェクトタイプとは何ですか?それは文字列ですか?それは数字ですか?それを日付として比較したい場合は、最初に日付に変換する必要があります。 –

+0

はい。当初はto_dateを使いました。しかし、to_dateを使うだけで、日付フォーマットを 'yyyy-MM-dd'からMMddYYに変換することはできません。それが私の問題です。 –

関連する問題