2012-05-05 3 views
1

datetime으로 mysql-db에 요금이 부과됩니다. 매달 나는 지난 달 이전의 모든 청구액을 포함하는 청구서를 작성하려고합니다. 2012 년 2 월, 5 월 또는 30 일이 지나면 2012 년 4 월 이전의 인보이스 만 남아 있습니다. 나는 date_sub로 시도했지만 월간을 뺍니다. 따라서 전월의 같은 날까지만 청구합니다. 어떻게해야합니까?MySQL에서 전월 말까지 데이터를 받으십시오.

get * 광고 WHERE AdEnd> ??

타이!

답변

-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()합니다. 이 날짜 시간 인 경우에 AdEnd은 DATE이지만, 경우에 작동

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

, 당신은 단지 할 것을 :

그래서, 지난 달의 마지막 날까지 같은 것을 할 광고 얻을 수 `AdEnd` 정말 OP가 쓴 날짜 시간 인 경우, 당신은 유사한 무언가를해야한다는 점

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

+1 참고 :이 같은 월의 첫 번째를 얻기 위해 하나의 작은 일 빼기 때문에, less than the first of the month을 '... AdEnd pilcrow

+0

@pilcrow, good one! – Ami

+0

날짜와 datetime의 차이점은 무엇입니까? 어쨌든, 내가해볼 게! 내가 그 (것)들을 얻을 때 결과를 배치하십시오. 어쨌든 도와 줘서 고마워! (덧붙여서 : 실제로 당신이 그것을 생각할 때 매우 간단하게, 나는 달을 빼먹었지만, 이것은 좀 더 편하다) – wjhulzebosch

관련 문제