3

先月からすべてのレコードを選択する SQL クエリを取得しようとしています。これは、多数の場所を検索することで、まさに必要なものであり、機能するはずです。

SELECT *
FROM orders
WHERE DATEPART(yy,DateOrdered) = DATEPART(yy,DATEADD(m,-1,GETDATE()))
AND DATEPART(m,DateOrdered) = DATEPART(m,DATEADD(m,-1,GETDATE()))

ただし、エラーが発生し続けます:

#1305 - FUNCTION retail.DATEPART does not exist

私が使用しているクエリは、ここの他の回答からの単語です。それでも、このエラーが発生しています。

助けてくれてありがとう - トム

4

3 に答える 3

3

それはmysqlでは機能しません。それを mysql に変換するには、次のようにします。

SELECT *
FROM orders
WHERE YEAR(DateOrdered) = YEAR(DATE_SUB(CURDATE(), INTERVAL -1 MONTH))
AND MONTH(DateOrdered) = MONTH(DATE_SUB(CURDATE(), INTERVAL -1 MONTH))

mysql で利用可能な日付関数については、こちらを参照してください。

于 2013-12-01T21:59:23.013 に答える
2

それも機能します。

SELECT * 
FROM orders 
WHERE  MONTH(DateOrdered) = MONTH(CURRENT_DATE() - INTERVAL 1 MONTH) 
AND YEAR(DateOrdered) = YEAR(CURRENT_DATE() - INTERVAL 1 MONTH)
于 2016-02-15T10:33:01.180 に答える