2017-05-08 4 views
0

日付形式をY/M/DからD/Mに変更する必要がある/ Y。私が照会しているすべてのデータを含むデータベースは、日付がY/M/Dに設定されているのに対し、入力フォームはまだD/M/Yとして入力されています。日付の入力形式をSQL/PHPのD/M/Yに変更する

どのようにフォーマットを変更することができますか?

$sql="SELECT `country_name`,`gdp`,`population`,Cyclist.name,Cyclist.dob FROM Country JOIN Cyclist ON Country.ISO_id=Cyclist.ISO_id 
 
WHERE 'dob' 
 
BETWEEN '".$date_1."' AND '".$date_2."'";
ここ

は、フォームの送信からデータを取得するためのPHPです:

NB日はここで

はSQLである 'DOB' です

$date_1=$_REQUEST['date_1']; 
 
$date_2=$_REQUEST['date_2'];

+0

入力日付を任意の方法で解析するのを止めるのは何ですか? –

+0

@TimBiegeleisen入力フォームやデータベースからの入力を解析することについて話していますか?残念ながら、私たちはそれを行うことはできませんか?何らかの形でコード内のデータ型を変更する必要があります – RealHelper

+0

PHPコードの中に 'Y-m-d'文字列を作成してクエリで使用できないのはなぜですか? –

答えて

1

STR_TO_DATEは、与えられたフォーマットを使用した日付に文字列を解析します。

$sql="SELECT `country_name`,`gdp`,`population`,Cyclist.name,Cyclist.dob FROM Country JOIN Cyclist ON Country.ISO_id=Cyclist.ISO_id 
WHERE 'dob' 
BETWEEN STR_TO_DATE('".$date_1.",'%d,%m,%Y') AND STR_TO_DATE('".$date_2.",'%d,%m,%Y')'"; 

STR_TO_DATE:https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_str-to-date

+0

PHPの中でそれをやってもらえますか?そのような要求 – RealHelper

+0

内部などPradnyaが提案のようにはい、あなたができる: $ DATE_1 =日付( 'D-M-Y'、のstrtotime($ _ REQUEST [ 'DATE_1'])); $ date_2 = date( 'd-m-Y'、strtotime($ _ REQUEST ['date_2'])); – Raphael

+0

ありがとう!うまくいけば、それは出力 '$ RES =&$ DB->クエリ($ sqlを)と 取得問題を取り組んできました。 if(PEAR :: isError($ res)){ die($ res-> getMessage()); } $ InputDateArray = array(); echo 'hello'; 一方($行= $ RES->をfetchRow()) $ InputDateArray [] = $行。 エコーjson_encode($ InputDateArray); ' – RealHelper

0

あなたは(PHPの日付の日付形式を変更することができる)とのstrtotime() 例えば:$ date_new =日付( 'D-M-Y' のstrtotime($日))。 し、SQLクエリで渡します。