2015-04-28 53 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”。 –

相关问题