ハードディスクメンテナンス

投稿記事数[8700]以上!PC,旧ゲーム,カメラ,動画などを、アヤしゐ專門妖語を使ッて解説スル!

DATE型にNULLを格納する方法(0000-00-00の回避,MySQL)

   


スポンサーリンク

MySQLで、フィールド `date` を、DATE型、NULL許可で作成する。

DATE型

`date`には YYYY-MM-DD を格納する設計であるが `date` が空欄にされた場合、NULLとすべきである(値がなくゼロでもない)。

NULL

しかし、INSERTすると、0000-00-00という値で格納されてしまうことがある。

0000-00-00

これをNULLにするには、SQL文組み立ての中で、

$date = “” ;

$sql = “INSERT INTO `test` (`date`,`time`)” ;

$sql .= “VALUES(” ;

if(!$date){
$sql .= “NULL,” ;
}else{
$sql .= “‘”.$date.”‘,” ;
}

$sql .= “‘”.$time.”‘)” ;

$res = mysql_query($sql,$conn) or die(“insert_error”) ;

として分岐すればよい。

この時、

if(!$date){
$sql .= “NULL,” ;
}else{
$sql .= “‘”.$date.”‘,” ;
}

と、シングルクォーテーションでNULLを囲んでしまうと、0000-00-00という値で格納されてしまう。

デーブルの「構造」にて、

①ヌル(NULL)にチェックを入れると、自動的にデフォルト値がNULLとなる。

②ヌル(NULL)のチェックを外し、デフォルト値にもNULLが入ったままだとエラーになる(当然)。

③ヌル(NULL)のチェックを外し、デフォルト値をNoneにする。

NULLが入った状態で③の操作をしてしまうと、NULLは0000-00-00となってしまい、その後①に戻しても、値はNULLには戻らず、0000-00-00のままとなる。

NULL→0000-00-00

同じTIME型についても、同様だろう。

スポンサーリンク
基礎からのMySQL 改訂版 (プログラマの種シリーズ SE必修! )
西沢 夢路
ソフトバンククリエイティブ
売り上げランキング: 8,289
MySQL全機能バイブル ~現場で役立つAtoZ~
鈴木 啓修
技術評論社
売り上げランキング: 331,043

スポンサーリンク



sha-bc@336×280

sha-bc@336×280


sha-bc@336×280

sha-bc@336×280

  関連記事

MySQL
[MySQL] 日付比較や日付検索が遅いのでBETWEENで改善させる

スポンサーリンク datetime型の列(reg_time)があるテーブルに対し …

no image
Debian7.4をハードウェアRAIDにインストールする際の設定(RAID1,ミラーリング)

スポンサーリンク Debianで起動ドライブを含んでソフトウェアRAID(ミラー …

no image
Linux(Debian7.4)でのS.M.A.R.T.の取得方法

スポンサーリンク WindowsでS.M.A.R.T.の値を取得するにはCrys …

NAS
首都大学東京の学内設置NASが踏み台にされ、スパムメールが送信される事案が発生

スポンサーリンク 約10万通のスパムメール送信。 スパムメールは、15時06分か …

Google Chrome
メモリー不足で落杉流CF-R6!メモリーの増設が必須!!

スポンサーリンク 分解をし、ハードディスクをSSDに換装した、CF-R6。 関連 …

ダンプ行を指定する箇所
[MySQL] テーブルのエクスポートで、レコード数の不一致が生じる問題 [phpMyAdmin,Dump all rows]

スポンサーリンク DB(MySQL)にある巨大なテーブルをローカルに保存したいと …

Optimize Your Database
WordPressで使用しているデータベースの使用容量を下げる方法

スポンサーリンク WordPressはブログシステムだから、主にテキストと画像で …

no image
mysqlimport –helpの内容 csvファイルの内容をデータベースにインポートする

スポンサーリンク mysqlimport –help の内容を以下に …

no image
[解決]ローカル内の他の端末からMySQLに接続できない件[my.cnf,bind-address]

スポンサーリンク DebianにMySQLを入れてDBサーバーとし、ローカル環境 …

no image
「実践ハイパフォーマンス MySQL」を購入

スポンサーリンク 「実践ハイパフォーマンス MySQL 第3版」を購入した。 ア …