mySql Date / DateTime默认值

时间:2014-12-03 12:06:28

标签: mysql datetime

我有一个Mysql 5.5和一个带有如下列的表:

`VERSION_TS` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP

但是我最近遇到了困难,我得到了这个例外:

  

日期时间值不正确:' 1998-03-20'对于专栏' VERSION_TS'在一排   1

尝试使用mySql Date向表中输入值MakeDate()的值时。 现在,我无法更改返回Date的功能,但我可以将列更改为Date,但之后我将失去默认值。我已经尝试了几件事,然后检查了网页,并且从我在Mysql 5.5中的理解中没有办法做到这一点,但我可能是错的,所以我来这里问:

  • 有没有办法让我可以将列更改为日期并且仍然有 默认值?
  • 此外,还有更好的方法来解决问题吗?

2 个答案:

答案 0 :(得分:1)

我认为documentation在这一点上非常明确:

  

TIMESTAMP和DATETIME列可以自动初始化   更新到当前日期和时间(即当前时间戳)。

因此,这不适用于DATE。但是,您可以创建一个符合您需要的视图:

create view v_table as
    select t.*, date(version_ts) as version_date
    from table t;

答案 1 :(得分:1)

如果编写returns date的函数in php,那么在收到date value之后,您可以执行此操作:

  $date = new DateTime('2006-12-12');
            echo date_format($date,'Y-m-d H:i:s');// this you can store in mysql table. 

  if not same kind of approach you can apply in the respective language to do the job.

或者像Gordon Linoff所提到的那样使用视图。