0

まず第一に、私は mySQL の第一人者ではないので、私の質問がばかげている場合はご容赦ください。

2 つの日付の日数差を取得しようとしていますが、最初の日付はサブクエリを使用して取得する必要があります。ここにあります

AND TO_DAYS((SELECT DATE(date_add) FROM ps_order_history oh2 WHERE oh2.id_order_state = 4       
AND id_order = o.id_order limit 1) as shdate) < (TO_DAYS(NOW()) - 12)

次のエラーが表示されるので、ここで何が間違っているのだろうか。

Incorrect parameters in the call to native function 'TO_DAYS'

誰もがおそらく助けることができますか?他の値を取得するときは、これらの条件を使用する必要があります

前もって感謝します

4

1 に答える 1

0

as shdate問題は削除すべき" " だと思います。

   AND TO_DAYS( (SELECT DATE(date_add) 
                   FROM ps_order_history oh2
                  WHERE oh2.id_order_state = 4
                    AND id_order = o.id_order
                  LIMIT 1
                ) as shdate
-- not valid here ^^^^^^^^^
              ) < (TO_DAYS(NOW()) - 12)

エイリアスを含める場合は、SELECT リストの式の後、FROM キーワードの前に配置する必要があります。必須ではありませんが、次のように受け入れられます。

   AND TO_DAYS( (SELECT DATE(date_add) AS shdate  
-- alias is valid here                 ^^^^^^^^^
                   FROM ps_order_history oh2
                  WHERE oh2.id_order_state = 4
                    AND id_order = o.id_order
                  LIMIT 1
                ) 
              ) < (TO_DAYS(NOW()) - 12)
于 2013-07-16T20:51:16.677 に答える