2012-05-05 17 views
1

datetimeを使って、mysql-dbに請求があります。私は毎月、先月またはそれ以前のすべての請求書を作成したいと思っています。 2012年第2、第5、または30日に2012年4月またはそれ以前の請求書のみが必要です。私はdate_subで試したことがありますが、月を減算するだけなので、前月の同じ日まで請求します。私はどのようにこれを行う必要がありますか?MySQLで前月の最後の日までデータを取得

get * from広告WHERE AdEnd> ??

Ty!

答えて

-1

例えば、date_diffをお試しください:

SELECT DATEDIFF('2008-11-30','2008-11-29') AS DiffDate 

利回り:

1 
4

私はいつもあなたが現在の日付からの日数で、月の日を引く場合は、あなたが買ってあげることが判明し前月の最終日。たとえば、月の15日、15日を引くと、あなたは前の月の最後の日になってしまいます。そして、上記のリターン2012-04-302012-05-05ある

SELECT (DATE_SUB(CURDATE(),INTERVAL DAYOFMONTH(CURDATE()) DAY)) 

CURDATE()場合。だから、

、先月の最終日までの広告を取得するには、このような何か:

SELECT * 
FROM Ads 
WHERE AdEnd <= (DATE_SUB(CURDATE(),INTERVAL DAYOFMONTH(CURDATE()) DAY)) 

ADENDがDATEである場合、これは動作しますが、それはDATETIMEだ場合、あなただけしたいと思います`AdEnd`が本当にOPが書いたようにDATETIMEであれば、あなたは似た何かをする必要がありますことを

SELECT * 
FROM Ads 
WHERE AdEnd < (DATE_SUB(CURDATE(),INTERVAL DAYOFMONTH(CURDATE()) - 1 DAY)) 
+0

+1注:あなたはこのように月の最初を取得するために、1以下の日引くので、less than the first of the monthを行います... 'どこにAdEnd pilcrow

+0

@pilcrow、good one! – Ami

+0

なぜ日時と日時の違いですか?とにかく、私はこれを試してみましょう!私はそれらを得るときに結果を投稿する。とにかく助けてくれてありがとう! (ところで:実際には非常に簡単だと思うが、私は月を引いていたが、これは簡単だ) – wjhulzebosch