MySQLのTimestamp(14)型にデータをインサートする方法

このQ&Aのポイント
  • MySQLのTimestamp(14)型のフィールドにYYYY/MM/DD hh:mm形式のデータをインサートする方法を教えてください。
  • 現在、PHPでinsert文を実行するとデータの桁数が足りず、フィールドの値が0000-00-00 00:00:00になってしまいます。どのようにすれば、hh:mmの値に00が自動的につくようになりますか?
  • インサートするデータサイズが大きいため、PHPで処理したいと思っています。インサートするファイルはCSVファイルです。さくらのレンタルサーバーで動作させています。
回答を見る
  • ベストアンサー

MySQLのTimestamp(14)型のフィールドにYYYY/MM/DD hh:mm形式のデータをインサートするには

MySQLのTimestamp(14)型のフィールドに YYYY/MM/DD hh:mm形式のデータをインサートするには どのようにしたらよいのでしょうか? MySQL の Timestamp(14)型(YYYY-MM-DD hh:mm:ss)のフィールドに YYYY/MM/DD hh:mm 形式のデータ(ssに該当するデータがない)を インサートするには、 PHPでどのようにしたらよいのでしょうか? できれば、インサートの際にssに自動的に00をつけたいです。 現在、PHPでinsert文を実行すると、データの桁数が足りないため、 フィールドの値は、0000-00-00 00:00:00になってしまいます。 同じ形式(YYYY/MM/DD hh:mm)のデータをphpMyAdminで インポートすると、自動的にssに00がつき、 YYYY-MM-DD hh:mm:ss(例 2009-10-20 12:10:00) となってくれます。 PHPでもphpMyAdminと同じ処理をしたいのですが、 インターネットで検索してもやり方が見つからず、 どのようにしたらよいのか、わかりません。。。 インサートするデータサイズが83MBと大きいので、 PHPで処理したいと思っています。 (phpMyAdminは8MBまでなので) ご存知の方がいましたら、教えていただけると、 助かります。m(_ _)m レンタルサーバー:さくら インサートするファイル:CSVファイル PHP 5.2.x MySQL 5.1 phpMyAdmin 3.1.3.1

  • MySQL
  • 回答数1
  • ありがとう数1

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

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

>データの桁数が足りないため、 >フィールドの値は、0000-00-00 00:00:00になってしまいます。 そんなことないと思いますが・・・ >phpMyAdminで 自動的には00は付かないはずですが・・・ なにか勘違いがあるとは思いますがとりあえずPHPで整形するなら date("Y-m-d H:i:s",strtotime($str))で処理してみては?

2007panda
質問者

お礼

こんにちは。 早速、回答いただき、ありがとうございました。 インサートする「ss」が足りないデータに :00を手入力で追加してテストしたところ、 ちゃんとMySQLのフィールドの値が 2009-10-20 12:10:00(例)YYYY-MM-DD hh:mm:ss になったので、 すっかりデータの桁数が足りないためだと 思っていました。。。(^_^;) 教えていただいた方法で早速、挑戦します! ありがとうございました。m(_ _)m

関連するQ&A

  • 【Access】できればクエリにて 日付(yyyy/mm/dd)+時間(hh:mm)の計算 

    いつもお世話になります。 フィールド「日付」:日付 (S) ~YYYY/MM/DD形式~ と フィールド「時間」:時刻 (S) ~HH/MM形式~ があります。 これらを合算し、 (1)日付 (標準)  ~YYYY/MM/DD HH:MM:SS形式~ (2)日付 (標準?) ~YYYY/MM/DD HH:MM形式~ にしたいのですが、 レコードの更新欄ではどのようにビルドさせればよろしいでしょうか? 教えていただけますでしょうか? よろしくお願いします。

  • 「yyyy/mm/dd hh:mm」が「yyyy/mm/dd hh:nn」へ変化する

    access2003を使用しています。 時刻の「分」の表示形式で気になることがあるのですが テーブルのデザインで フィールド1のデータ型を「日付/時刻型」にし 書式を「yyyy/mm/dd hh:mm」と入力しても 「yyyy/mm/dd hh:nn」に変化してしまいます。 問題なく「2009/02/28 20:33」と表示されるのですが なぜmからnへ変化してしまうのでしょうか? また デザインで書式を「hh:mm」だけ入力した場合は 「時刻 (S)」へ変化します。 何か少しでもわかる方ご回答よろしくお願いします。

  • oracleのDate型

    Ceate table test( field1 date ) insert into test values(current_timestamp); 上記の処理でDate型の列にcurrent_timestampデータを入れても、年月日までしかはいらないのですが、yyyy/mm/dd hh24:mi:ssの形で はできないのでしょうか?oracleは10gです。

  • 「今日の日付を含む」と言う条件のクエリ(yyyy/mm/dd hh:mm形式)

    テーブル1の 日付フィールドには「yyyy/mm/dd hh:mm」形式にしているため 「2009/02/28 0:30」と入力されています。 クエリ1に SELECT テーブル1.日付 FROM テーブル1 WHERE (((テーブル1.日付)=Date())); とした場合は 「2009/02/28 0:30」 は表示されません。 テーブル1の 「2009/02/28 0:30」を「2009/02/28 0:00」にすれば クエリ1を実行すると「2009/02/28 0:00」のレコードが表示されます。 どうすれば日付+時間の場合も日付で抽出することができるのでしょうか? アクセス2003です。 よろしくお願いします。

  • to_timestampを使ったアップデート

    オラクル初心者です。 「to_timestamp」を使用したデータベースへの書き込みのSQL文が分かりません。 ツールは「つみきWEB」を使用しています。 フィールドの形式は to_timestamp(yyyy/mm/dd hh24:mi:ss.ff3)です。 行ったコマンドは以下に示します。 update (テーブル名) set (書き込みを行うフィールド) = to_timestamp('11/11 11:11:11' 、'yyyy/mm/dd hh24:mi:ss.ff3') WHERE (条件)

  • DataGridViewでyyyy/MM/dd

    SQLServer2008で作ったデータベースをVB2010のDataGridViewで表示させております。 DataGridViewで日付列を"yyyy/MM/dd"のスラッシュ入り10桁で表示させたいのですが表示されません。 データベース側でのデータ型は「date」となっております。 DataGridView1.Columns("日付").DefaultCellStyle.Format = "yyyy/MM/dd" こう記述すればいいと思ったのですが、「20111227」とスラッシュ無しで表示されてしまいます。 DataGridView1.Columns("日付").DefaultCellStyle.Format = "yyyy年MM月dd日" これは「2011年12月27日」と表示することを確認できました。 DataGridView1.Columns("日付").DefaultCellStyle.Format = "yyyy-MM-dd" これは「2011-12-27」と表示することを確認できました。 どのようにしたら"yyyy/MM/dd"形式で表示させることが出来るのでしょうか 指導のほど、よろしくお願い致します。

  • Excelでセルの表示形式を「yyyy年mm月」から「yyyy/mm/dd」へ

    エクセルで数式をあてはめて6ヶ月後の日にちを「yyyy年mm月」形式で出しているセルがあります。その該当月に作業をしたら、作業日をセルに上書きで入力するのですが、手入力によって「yyyy/mm/dd」形式で入れたいのです。 今、セルの表示形式が「yyyy年mm月」なので、手入力で入れても「yyyy年mm月」としかならず、「yyyy/mm/dd」にするためにセルの書式設定→表示形式の変更を行っている状態です。「yyyy年mm月」形式を解除したいのですが、Delボタンでは入力された数値しかクリアーされず、形式は残ってしまいます。「yyyy年mm月」を解除して「標準」または「yyyy/mm/dd」にもっていく簡単な方法はありますでしょうか?

  • yyyy/m/d h:mmという表記をyyyy/mm/ddにしたい

    エクセルに関する質問です。よろしくお願いします。 シート上でyyyy/m/d h:mm(例えば2009/5/1 3:04や2009/6/15 12:04のように)で表記されている箇所を、時間表記を切って「yyyy/mm/dd」だけにしたいと考えています。 「セルの書式設定」の「表示形式」タブで設定すれば表示上は「yyyy/mm/dd」になるのですが、データ上は「h:mm」が残っています。 そのためピボットテーブルで「yyyy/mm/dd」の情報をベースに、集計しようとすると「h:mm」のデータが邪魔になってしまいます。 何とかなりませんでしょうか? よろしくお願いいたします。

  • Accessの日付フィールドデータの取得について。

    VbScriptでオブジェクトに、Accessの日付フィールドデータを取得するのですが、その際、 "YYYY/MM/DD HH:MM:SS" の形式で取得するにはどのようにしたらよいのでしょうか。 よろしくお願いします。

  • 現在時刻をYYYY-MM-DDThh:mm:ss.sssssss+hh

    現在時刻をYYYY-MM-DDThh:mm:ss.sssssss+hh:mmのフォーマットで表示するにはどうすればよいでしょうか? よろしくお願いします。