• ベストアンサー

MySQLデータ呼出し後の日付の整形(PHP)

MySQLのDATE型のカラムに2014-03-07 という日付が入っています。 これをPHP echo で呼び出すと、当然ですが2014-03-07と表示されます。 これを03-07 と表示したいのですが、どのような方法がありますでしょうか? よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#244856
noname#244856
回答No.4

既に補足回答がついていますがバッククォートとシングルクォート/ダブルクォートはちゃんと使い分けてください。 バッククォートとは? http://php1st.com/1184/

tajix14
質問者

お礼

有難うございます。お蔭様でできました!! 本当に有難うございました。

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.5

よけいなお世話だと思いますが・・・ MySQLから渡すデータが「03-07」だと、「2014-03-07」と「2013-03-07」など 年が違うデータが競合します。 可能な限り渡す段階ではYYYY-MM-DDの形でおこない、PHP側で加工する方がよいと思います。 またPHP側で「03-07」とデータを持った時、感覚的に日付データだと認識しづらい フォーマットになっています。 せめて「03/07」にするなど、工夫が必要かもしれません

tajix14
質問者

お礼

有難うございます。 はい、ここで問い合わせているSQL文はPHP内に記載します。 createdateカラムにある「2014-03-07」の文字をここで作ったPHPで「03-07」という形に読み出すようにしています。 ご指導有難うございました。

すると、全ての回答が全文表示されます。
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.3

>SELECT name,DATE_FORMAT('create_date', '%m-%d') AS create FROM data 'create_date'という文字列リテラルをdate_formatで書式化するのは無理です。date_formatの第一引数は日付形式のリテラルもしくは「列名」でないといけません。 SELECT name,DATE_FORMAT(create_date, '%m-%d') AS create FROM data もしくは(バッククォートで括って) SELECT name,DATE_FORMAT(`create_date`, '%m-%d') AS create FROM data ですよね?

tajix14
質問者

お礼

有難うございます。お蔭様でできました!! 本当に有難うございました。

すると、全ての回答が全文表示されます。
noname#244856
noname#244856
回答No.2

訂正 SELECT DATE_FORMAT(`カラム名`, '%m-%d') AS `取り出したい名前`;

tajix14
質問者

補足

いつもご助言を頂き有難うございます。 SELECT DATE_FORMAT('1997-10-04', '%m-%d'); で、月、日が表示されることを確認しました。 しかしながら、下記のようなSQL文にすると、nameは出てきますがcreateはNULLになってしまいます。 どこがいけないのかご助言頂けましたら幸いです。 大変ご迷惑をお掛けいたしますがよろしくお願いいたします。 SELECT name,DATE_FORMAT('create_date', '%m-%d') AS create FROM data SELECT name,(SELECT DATE_FORMAT('create_date', '%m-%d')) AS create FROM data

すると、全ての回答が全文表示されます。
noname#244856
noname#244856
回答No.1

MySQLマニュアル - 日付と時刻関数 http://dev.mysql.com/doc/refman/4.1/ja/date-and-time-functions.html SELECT DATE_FORMAT(`カラム名`, '%m, %d') AS `取り出したい名前`;

すると、全ての回答が全文表示されます。

関連するQ&A