datetime 형식의 SQL 열에서 날짜를 선택하십시오.


0

사용자가 입력 할 수있는 형식 SQL에 저장된 형식

날짜 시간 형식이있는 열을 SQL에서 선택하려고 2017-12-31 12:01:12하지만 예를 들어 2017-12-31사용자가 양식에 입력 한 날짜를 기준으로 날짜 만 선택 하면됩니다. 목표는 해당 날짜 내의 모든 활동을 선택하는 것입니다.

예 : 양식의 입력 형식은 yyyy-mm-ddSQL이지만 날짜는로 저장됩니다 yyyy-mm-dd hh:mm:ss. 입력 날짜가 yyyy-mm-dd형식 인 경우 열 데이터가이 형식으로 저장되면 무시됩니다 yyyy-mm-dd hh:mm:ss.

어떻게 선택할 수 있습니다 yyyy-mm-dd으로부터에만 yyyy-mm-dd hh:mm:ss열에서?

$mysql=("SELECT action_time FROM table WHERE action_time ='".$date."' Order by 
action_time DESC"); 

이해가 안 돼요 당신은 사용자가 '2017-12-31'을 입력하면 2017-12-31 00:00:00과 2017-12-31 23:59:59 사이의 모든 날짜 시간을 찾으려고합니까? 사용자가 '2017-12-31 12:01:12'를 입력하면 어떻게됩니까? 의견에 응답하지 마십시오. 편집 이 명확하고 더 완벽하게 질문을.
Scott

@ 스콧 머리 위로 주셔서 감사합니다. 방금 질문을 편집했습니다. 조언하십시오
A. Kiyoshi

(1) 내가 볼 수있는 한, 당신의 이미지는 실제로 당신의 말로 적절하게 설명되지 않은 질문에 아무 것도 기여하지 않습니다. (2) 사용자가 '2017-12-31 12:01:12'를 입력하면 어떻게됩니까? 당신은 당신의 형태가 그것을 불가능하게 만든다고 말하는가? 그것은 당신이 설명해야 할 종류입니다. (3) SQL로 작업 한 지 몇 년이 지났지 만 일반적인 논리와 마찬가지로 다음과 같은 것을 고려하는 것이 좋습니다 SELECT action_time FROM table WHERE action_time>=$date AND action_time<=$date+23:59:59.
Scott

@Scott 답장을 보내 주셔서 감사합니다. 사용자는 질문에 언급 된대로이 날짜 형식 'yyyy-mm-dd'만 입력 할 수 있습니다. 사용자는 시간 만 포함 할 수 없으며 날짜 만 포함 할 수 있습니다.
A. Kiyoshi

답변:


0

날짜 부분 만 관심이 있다면 다음을 사용하십시오 DATE().

SELECT DATE(action_time) FROM table;

클라이언트 측 (HTML 및 JS)을 변경하여 서버에 임의의 데이터를 전송하도록 할 수 있으므로 항상 사용자 입력을 확인해야합니다. PHP에서 SQL 삽입을 방지하는 방법 도 확인하십시오 .


@LEI 감사합니다. SELECT action_time FROM table WHERE date (action_time) = $ date_selected를 넣었습니다.
A. Kiyoshi

SQL 주입 정보-SQL 주입을 최소화하는 유일한 형식은 모든 형식의 PDO 등에서 <selected> 옵션을 사용하는 것입니다. 가능한 한, 사용자 이름과 비밀번호 만이 사용자가 $ _POST 등을 입력하기 전에 필요한 유일한 형식이어야합니다.
A. Kiyoshi

이 조항도 사용할 수 있다고 생각합니다 "... WHERE action_time LIKE $date_selected%". MySQL 내에서 행을 포맷하려면에서 작동해야합니다 SELECT.
LEI

@LEI 감사합니다. 모든 것을 감사합니다 ....
A. Kiyoshi

천만에요. 나는 PDO매개 변수를 바인딩하는 것이 간단하고 안전하다는 것을 사용하여 SQL 쿼리에서 변수를 연결하는 것이 좋지 않다는 것을 다시 강조합니다 . 또한 모든 프론트 엔드 HTML 양식을 수정하여 이상한 물건을 보내도록주의하십시오!
LEI
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.