列の詳細:
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'
WHERE
modified_date
'2013-04-02 00:00:00'
false
WHERE
modified_date
'2013-04-02 00:00:00'
false
この説明は、文が句SELECT
に対応する値を返すことを示しているだけです。WHERE
modified_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_date
as TIMESTAMP
= '2013-04-02 14:05:45.8611'
modified_date
as DATE
= '2013-04-02'
modified_date
as TIMESTAMP
= '2013-04-02 14:09:14.5422'
modified_date
as DATE
= '2013-04-02'
String value
as STRING
= '2013-04-02'
String value
as DATE
='2013-04-02'
注:これは、値をデータ型
にキャストせずに行うこともできます。私の側でのキャストは、私の検証目的のためでした。
私の質問に答えるには、次の条項を使用します。String
DATE
String
WHERE
WHERE e.modified_date::DATE between '2013-04-02'::DATE
AND '2013-04-02'::DATE
何も返さないのは、間違ったWHERE
句を使用するテスト ストアド プロシージャを呼び出しただけです。