0

compare でデータを検索するようにコーディングしていますdateTime。Web フォームでは、ユーザー入力値2012-06-04は に保存され$_REQUEST['dateSearch']ます。dateTime私はそれからオブジェクトを作成します:

$dateObj = date_create_from_format("Y-m-d",$_REQUEST['dateSearch']);
$dateParam = $dateObj->format("Y-m");

次に$dateParam、SQLクエリで使用してデータを検索します

$sql = "
    SELECT *
    FROM `temp` as `t`
    WHERE `t`.`date` LIKE '$dateParam%'
";

すべて問題ありませんが、MySQL が常に 1 つのdateTime形式のみを使用するかどうかはわかりませんY-m-d H:i:s。ここでは、$dateParam = $dateObj->format("Y-m");デフォルトのフォーマットを「Ym」に設定しています。デフォルトのフォーマットは変更されませんか? コードでフォーマットを厳密に設定したくありませんY-m-d H:i:s。代わりに、システムからフォーマット文字列を取得して使用する方が良いと思います。dateTimemySQL からデフォルトのフォーマット文字列を取得するにはどうすればよいですか???

4

2 に答える 2

4

誤解されY-m-d H:i:s
ているのは、日時データ型の唯一の形式です。

Y-m-d = date
H:i:s = time

そのため、datetime

mysqlでdatetimeの戻り形式を変更するには、mysqlでdate_format関数を
使用できます。

そのような、

date_format('%Y-%m') = 2012-06
于 2012-06-04T10:37:36.443 に答える
0

以下を使用することをお勧めします!

select * from users where month(`t`.`date`)='12' and year(`t`.`date`)='2010'

REF:月年に対する MySQL クエリ

于 2012-06-04T10:45:49.923 に答える