ハードディスクメンテナンス ブログ

投稿記事数7,980以上!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

  関連記事

no image
Linuxのシステム情報の確認方法(OS,CPU,メモリ)

Windowsであれば、デスクトップ上の「マイコンピュータ」を右クリック>プロパ …

no image
業務サーバーのCPU負荷が100%

業務サーバー(Linux)のCPU負荷が100%に。 スポンサーリンク MySQ …

no image
悪質な 163data.com.cn を拒否する(.htaccess,拒否リスト)

あるサイトに対する、無駄なアクセスが多いのは分かっている。 放置していたのだが、 …

E3110
DBサーバーのハードウェア換装(Debian7.4,MySQL5.5.35) Xeon E3110

試験データベースサーバー(DBサーバー)を入れ替えた。 Debian7.4(64 …

no image
[MySQL] index定義の無駄と、indexが役に立たない場合 [悪例,アンチパターン]

データベースで重要なindexであるが、全てのfieldにindexを定義するの …

Intel SSD Toolbox
8MB化したSSD(X25-M SSDSA2MH080G1GC)の回復作戦 – 多大な犠牲の上に成功!

8MBとなってしまったIntelのX25-M SSDSA2MH080G1GC(8 …

no image
(Debian7.4)ミラーリングのスペアディスクの追加と自動リビルド(再構築)

ミラーを組んでいるsdaとsdcがある状態で、スペアディスクとしてsdbを追加す …

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

WindowsでS.M.A.R.T.の値を取得するにはCrystalDiskIn …

no image
Debian7.4でWEBサーバーを立てる(Apache,MySQL,PHP,phpMyAdmin,FTP)

Windows環境でもXAMPPを入れると環境が整うので(その端末なのでFTP不 …

SSDとHDD_換装_CF-R6_C300(64GB)
Panasonic CF-R6の分解②(ハードディスクをSSDへ換装) CF-R7,CF-R8も同様

熱杉流かつ遅杉流、Panasonic(旧松下)のノートパソコンである、CF-R6 …