내 데이터베이스 테이블에 날짜 (yy-mm-dd 형식으로 날짜를 저장하는 데 사용되는 varchar 필드)가있는 필드가 있는데, 이제 2 주 전에 레코드를 선택하려고합니다. 어떻게 할 수 있습니까?2 주 전의 검색어 선택
답변
MySQL에서는 암묵적인 날짜 계산이 상당히 유연합니다. CAST()
또는 DATE()
을 명시 적으로 사용하지 않고도 날짜를 문자열로 비교할 수 있지만 MySQL이 형식을 올바르게 해석 할 수 있다고 믿고 있습니다. 운 좋게도 yy-mm-dd
으로 정상적으로 처리됩니다.
BETWEEN
및 INTERVAL
을 사용하면 쿼리를 쉽게 읽을 수 있습니다. 예를 들면 :
SELECT * FROM Holidays
WHERE Date BETWEEN (NOW() - INTERVAL 14 DAY) AND NOW();
BETWEEN
의 유일한 트릭은 당신이 하한 제의 상한 초를 넣어해야한다는 것입니다; 당신이 BETWEEN 5 AND 2
를 작성하는 경우도 2
Here's a demo of the query in action at SQL Fiddle 이하하면서 5보다 크거나 같아야 수있는 값과 recognized INTERVAL
expressions의 목록이 없기 때문에, 예를 들어, 이것은 항상 FALSE
로 평가 MySQL.
표현식 NOW() - INTERVAL 14 DAY
주변의 괄호는 필수는 아니지만 명확하게하기 위해 여기에서 사용하는 것이 좋습니다. 두 글자를 희생하여 올바른 구문 강조가 없을 때 술어 절을 읽기가 조금 더 쉽게 만듭니다.
이상적으로는 날짜를 저장하는 데 날짜 형식을 사용해야하지만, 그렇지 않은 경우에는 날짜까지 캐스팅을 조사한 다음 비교해야합니다.
select * from yourtable where cast (yourdate as Date) BETWEEN Date_Add(CURDATE(), INTERVAL -21 Day) and Date_Add(CURDATE(), INTERVAL -14 Day)
참고, 테스트되지 않았으며 약간의 조정이 필요할 수 있지만 수행해야 할 작업에 대한 일반적인 정보를 제공해야합니다.
또한 가능하다면 varchar 필드를 날짜 필드로 변환해야합니다. 이러한 유형의 일이 발생하지 않도록하려면 날짜 유형이 있습니다. 그러나 필드 유형 변경은 항상 그렇지는 않습니다. 가능성.
12 일 전에는 으로 간단하게 할 수 있습니다. 문자열과 날짜를으로 비교하십시오.
SELECT *
FROM your_table
WHERE your_date >= ADDDATE(NOW(), -14) AND your_date < NOW()
참고, 날짜는 varchar로 저장되므로 캐스트를 먼저 수행해야합니다. – user2366842
varchar로 비교 날짜를 지정할 수 있습니다. – Hardy
나는이 2 주 돌아가서 그 주에서 일어난 모든 레코드를 선택 뜻 지난
SELECT * FROM Holidays
WHERE a.dDate >= DATE(NOW()) - INTERVAL 14
DAY AND a.dDate <= DATE(NOW()) - INTERVAL 8
- 1. 여러 검색어 ID 선택
- 2. TSQL 2 주 및 3 주 간격 선택
- 3. 15 일 전의 레코드 선택
- 4. 날짜 조건이있는 검색어 선택
- 5. 도움말 검색어 선택 ZF
- 6. Linq에서 검색어 선택
- 7. 선택한 검색어 내에서 선택 하시겠습니까?
- 8. 내부 선택 검색어 열 비교
- 9. 행을 선택, 지난 주
- 10. 고유 임의의 숫자가있는 검색어 선택
- 11. 탄성 검색 검색 검색어 선택
- 12. xml 데이터에 대한 검색어 선택
- 13. 선택 전의 날짜 별 SQL 순서
- 14. ASP.Net MVC에서 라우팅하기 전의 데이터베이스 선택
- 15. 2 일 전의 행을 빨리 지우는 것
- 16. SQL에서 빈 주 선택
- 17. DayOfWeek 지난 주 선택
- 18. SQL을 사용하여 주 선택
- 19. 2 주 이내에 R
- 20. 2 주 단위로 그룹화하십시오.
- 21. 2 주 예고 우수
- 22. 기본 항목으로 대체 된 검색어 선택
- 23. 선택 드롭 다운에서 검색어 문자열 링크를 만드시겠습니까?
- 24. Mongo $ 선택 검색어를 사용하는 모든 검색어
- 25. 날짜 문자열에서 가능한 삽입 가능 검색어 선택
- 26. 검색어 선택 기록을 찾을 수 없습니다.
- 27. sqlite에서 "First Letter"중복이없는 검색어 선택
- 28. 선택 검색어 결합 가입 TOP 1
- 29. 도시 및 주 선택 Drupal
- 30. MVC 다중 선택 제어 주
의 과거에 선택 데이터를 사용할 수 있습니까? – dcaswell
당신이 찾고있는 용어는 "날짜 산술"입니다. –
가능한 복제본 [2 주 전 MYSQL에서 어떻게 선택합니까?] (http://stackoverflow.com/questions/6683768/how-do-i-select-two-weeks-ago-in-mysql) – Air