列の詳細:
modified_date:TIMESTAMP
modified_dateフィールドに挿入された実際の値は次のとおりです
タイムゾーンなしのmodified_date
タイムスタンプ
2013-04-02 14:05:45.8611
2013-04-02 14:09:14.5422
WHEREの句を含むテスト手順の理由の簡単な説明
WHERE e.modified_date >= '2013-04-02'::TIMESTAMP
AND e.modified_date <='2013-04-02'::TIMESTAMP
何も返さない: -値をデータ型に
キャストすると、次のようになります。
- 最初に、句は、フィールド(値を参照) が より大きいか等しいかどうかを検証します。一方、これは次のように返されます
- 第二に、句は以下のフィールド (値を参照) を検証します。として返されますString'2013-04-02'TIMESTAMP'2013-04-02 00:00:00'
WHEREmodified_date'2013-04-02 00:00:00'false
WHEREmodified_date'2013-04-02 00:00:00'false
この説明は、文が句SELECTに対応する値を返すことを示しているだけです。WHEREmodified_date'2013-04-02 00:00:00'
このWHERE条項については、次のとおりです。
WHERE e.modified_date::DATE BETWEEN '2013-04-02'::DATE
AND '2013-04-02'::DATE
modified_dateとString値の
両方をDATEデータ型にキャストすると、次の値になります。
modified_dateas TIMESTAMP= '2013-04-02 14:05:45.8611'
modified_dateas DATE= '2013-04-02'
modified_dateas TIMESTAMP= '2013-04-02 14:09:14.5422'
modified_dateas DATE= '2013-04-02'
String valueas STRING= '2013-04-02'
String valueas DATE='2013-04-02'
注:これは、値をデータ型
にキャストせずに行うこともできます。私の側でのキャストは、私の検証目的のためでした。
私の質問に答えるには、次の条項を使用します。StringDATEString
WHERE
WHERE e.modified_date::DATE between '2013-04-02'::DATE
AND '2013-04-02'::DATE
何も返さないのは、間違ったWHERE句を使用するテスト ストアド プロシージャを呼び出しただけです。