update 오늘의 MySQL과 동일하거나 더 큰 날짜 시간



mysql datetime 비교 (7)

'created'가 datetime 유형 인 경우

SELECT * FROM users WHERE created < DATE_ADD(CURDATE(), INTERVAL 1 DAY);

CURDATE ()는 '2013-05-09 00:00:00'을 의미합니다.

https://ffff65535.com

다음을 수행하는 가장 좋은 방법은 무엇입니까?

SELECT * FROM users WHERE created >= today;

참고 : created는 datetime 필드입니다.


당신은 모든 행을 리턴 할 수 있고 if 문 안에 PHP datediff 함수를 사용하는 것보다 서버에 여분의 부하가 걸릴 수 있습니다.

if(dateDiff(date("Y/m/d"), $row['date']) <=0 ){    
}else{    
echo " info here";    
}

아래 코드는 나를 위해 일했습니다.

declare @Today date

Set @Today=getdate() --date will equal today    

Select *

FROM table_name
WHERE created <= @Today

열에 인덱스가 있고 함수가 열에 적용되면 인덱스가 작동하지 않고 전체 테이블 스캔이 발생하여 쿼리가 느려집니다.

index를 사용하고 datetime 과 today / current date를 비교하기 위해 다음을 사용할 수 있습니다.

select * from users
where created >= CONCAT(CURDATE(), ' 00:00:00') && created < CONCAT(CURDATE(), ' 23:59:59')

SELECT * FROM table_name WHERE CONCAT( SUBSTRING(json_date, 11, 4 ) ,  '-', SUBSTRING( json_date, 7, 2 ) ,  '-', SUBSTRING(json_date, 3, 2 ) ) >= NOW();

json_date [ "05/11/2011"]


SELECT * FROM users WHERE created >= CURDATE();

하지만 created < todaycreated < today


SELECT * FROM users WHERE created >= now()




datetime