2015-04-28 89 views
0

列稱爲「jdate」被定義爲「VARCHAR(19), 並插入行之前到稱爲表‘fatable’在mysql中,時間戳不是生成日期。爲什麼?

alter table fatable CHANGE jdate jdate TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP; 
Then, inserting a row like: 
insert into fatable (firstname,lastname, address, city, state, zip, phoneno, emailad, jdate, ddate, cstatus, investam, wamount, comments) 
values('john','lee','10 rustling lane','bedford','ny','10506','9142347752','[email protected]', '','09262015','0','100','10','aa'); 

其結果是:

# id, firstname, lastname, address, city, state, zip, phoneno, emailad, timestamp, ddate, cstatus, investam, wamount, comments 
'2015101', 'john', 'lee', '10 rustling lane', 'bedford', 'ny', '10506', '9142347752', '[email protected]', '0000-00-00 00:00:00', '09262015', '0', '100.00', '10.00', 'aa' 

列「jdate」具有包含全零的mysql日期格式。沒有顯示當前日期。

+1

您正在插入一個空字符串:'''',嘗試插入:'now()' – alfasin

+0

默認情況下,第一個時間戳列爲零,您將更改'jdate',但嘗試插入一個值在'timestamp'中,你也不是在你的select中查詢那個列... – Aguardientico

+0

另外,如果列允許NULL,mysql爲列使用明確的DEFAULT NULL,嘗試將alter table改爲NOT NULL'而不是'NULL' https://dev.mysql.com/doc/refman/5.0/zh-CN/data-type-defaults.html – Aguardientico

回答

0
  1. 在裁判 'ALTER TABLE MY_TABLE變化column_for_date column_for_date時間戳缺省值CURRENT_TIMESTAMP;'不起作用(MySQL 5.6)。相反,定義LIKE「column_for_date」TIMESTAMP DEFAULT'0000-00-00 00:00:00','
  2. 然後,在插入之前,輸入CREATE TRIGGER子句,如「CREATE TRIGGER a_dummy_name BEFORE INSERT ON table_name FOR EACH ROW SET NEW。 TABLE_NAME = UTC_TIMESTAMP;」
  3. 其中插入子句是,值('NOT NULL','a_value_for_the_next列.... on和on); 我把日期列放在ID。IE作爲第二列。 祝大家好運。
0

我們在結果中沒有看到對已更改jdate列的引用。 (有一列名爲timestamp,列名爲ddate)。

MySQL參考手冊涵蓋了TIMESTAMP列自動初始化的相當好的主題。

你所觀察的行爲,一些可能的原因:timestamp列允許NULL值,提供時間戳列值/分配在INSERT,表中的超過一個時間戳列等

有沒有足夠的信息在問題中提供以提供確切的答案。 ALTER TABLE語句引用列名爲jdate,但我們在INSERT中看不到任何對該列的引用(如果您希望該值自動初始化,這是我們所期望的),但令人困惑的是,結果不顯示一列名爲jdate

參考:https://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html

+0

感謝您的關注。我修改了名爲「timestamp」的行頭,這是一個錯誤,測試是在頭部「jdate」完成的。在測試幾個選項以找到解決方案時,我使用「時間戳」作爲標籤。它不起作用。 –

+0

第一個評論,有你的名字,但打印顯示沒有。對不起。我讀過你提到的初始化參考。而且,我無法從參考文獻提供的指南中找到解決方案。關於具有多個時間戳列的問題,我只有一列在表中,而且在每一行中標籤爲「jdate」。 –

相關問題