2012-01-07 11 views
1

私はcodeigniterプロジェクトで作業していますが、SQLの問題のトラブルシューティングを試みています。私はテーブル内の日付フィールドを更新するクエリを持っており、それはまったく更新していません。dbテーブルの日付を更新する際の問題

私はこのテーブル

CREATE TABLE `Customer` (
    `customer_id` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `first_name` varchar(55) NOT NULL DEFAULT '', 
    `last_name` varchar(55) NOT NULL DEFAULT '', 
    `city` varchar(255) DEFAULT '', 
    `state` char(2) DEFAULT '', 
    `zip` int(5) DEFAULT NULL, 
    `title` varchar(255) NOT NULL DEFAULT '', 
    `image` varchar(255) DEFAULT '', 
    `blurb` blob, 
    `end_date` date DEFAULT NULL, 
    `goal` int(11) DEFAULT NULL, 
    `paypal_acct_num` int(11) DEFAULT NULL, 
    `progress_bar` enum('full','half','none') DEFAULT NULL, 
    `page_views` int(11) NOT NULL DEFAULT '0', 
    `total_pages` int(11) NOT NULL DEFAULT '0', 
    `total_conversions` int(11) NOT NULL DEFAULT '0', 
    `total_given` int(11) NOT NULL DEFAULT '0', 
    `conversion_percentage` int(11) NOT NULL DEFAULT '0', 
    `avg_contribution` int(11) NOT NULL DEFAULT '0', 
    PRIMARY KEY (`customer_id`) 
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8; 

を持っていると私は、データを挿入するには、このクエリを実行すると、それはその後、私はCUSTOMER_IDを取得し、実行しようと正常に動作して2012-11-01

INSERT INTO `Customer` (`first_name`, `last_name`, `end_date`) VALUES ('John', 'Smith2', '2012-11-01'); 

に日付を設定しますこのクエリ

UPDATE `Customer` SET `end_date` = '2012-14-01' WHERE `customer_id` = '18'; 

、それは0000-00-00に日付END_DATEフィールドを設定します。

2012-14-01ではなく、終了日を0000-00-00に変更するのはなぜですか?

答えて

5

2012-14-01

(これにより0000-00-00Data truncated for column 'end_date' at row 1警告にキャストの無効な日付は、あなたが悪いクエリを行動の直後にMySQLへSHOW WARNINGSを照会することで見ることができますmysqlの、返された:))第十四の月の最初の日であります

2012-01-14は、1月14日です。

+0

標準の日付形式はYYYY/MM/DDであったが、アメリカ人にとって混乱を招く可能性があります。 – Prof83

+0

@ Prof83: '2012-01-14' *は' YYYY-MM-DD'です –

+0

日付のmysql形式がyyyy-mm-ddだと言っていますか? – Catfish

1

使用この:

UPDATE `Customer` SET `end_date` = date('Y-m-d') WHERE `customer_id` = '18'; 

使用日付関数は、このフィールドを更新します。

+0

または 'end_date' = NOW()WHERE ... – Prof83

+0

今日はそこに日付を入れたくありません。 – Catfish

+1

日付( 'Y-m-d'、$ timestamp) - PHPタイムスタンプで読む – Prof83