web-dev-qa-db-ja.com

日時フィールド(mysql)から日付のみを抽出し、それをphp変数に割り当てます

MySQLテーブルのdatetimeフィールドからphp変数に日付のみを割り当てることができません。私はPHP 4を使用しています、PHP 5でそれを行う方法を知っています。

誰かが以下のphpコードから何が欠けているかについて助けてもらえますか?.

$dc = mysql_query("SELECT * FROM INVHDR WHERE Invdate BETWEEN '2011-04-01' AND '2012-03-31'");
while ($dc2 = mysql_fetch_assoc($dc)) {
    $invno      = $dc2['Invno']; // Here Invno is a datetime field type
    $invdat3    = $dc2['Invdate'];
    $date_array = explode("-", $invdat3);
    $invdat     = sprintf('%02d/%02d/%4d', $date_array[2], $date_array[1], $date_array[0]);
}
8
user1114409

日付部分を表示したいだけの場合は、 DateTime クラスを使用できます。

echo echo DateTime::createFromFormat("Y-m-d H:i:s", "2012-12-24 12:13:14")->format("d/m/Y");
// 24/12/2012
32
Salman A

日付操作に関して私が非常に役立つと思うリンクがあります: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

そこで解決策を簡単に見つけることができます。

SELECT *, DATE(Invdate) as Inv_date ...
5

MySQLで直接実行します。

select DATE_FORMAT('2012-12-24 12:13:14', '%Y/%m/%d')

したがって、クエリは次のようになります。

SELECT DATE_FORMAT(Invdate, '%Y/%m/%d') FROM INVHDR WHERE Invdate BETWEEN '$startdat' AND '$enddat'
3
Peter Krejci