MySQL CURTIME()始终是00:00:00

我在Solaris 10u8上安装了MySQL服务器。 直到最近,一切工作正常。 然后突然间,根据MySQL的当前时间总是00:00:00。 CURDATE()似乎工作正常,但它给出的时间仍然是00:00:00。 下面我有一些关于我的问题的插图。 我试过重新启动机器。 我不知道该怎么做,这是搞乱我的Web应用程序。 有任何想法吗?

-bash-4.1$ Fri Jul 9 11:01:42 EDT 2010 ....... ....... mysql> create table timetest (datetime datetime); Query OK, 0 rows affected (0.01 sec) mysql> insert into timetest values (curtime()); Query OK, 1 row affected, 1 warning (0.01 sec) mysql> select * from timetest; +---------------------+ | datetime | +---------------------+ | 0000-00-00 00:00:00 | +---------------------+ 1 row in set (0.00 sec) mysql> insert into timetest values (curdate()); Query OK, 1 row affected (0.00 sec) mysql> select * from timetest; +---------------------+ | datetime | +---------------------+ | 0000-00-00 00:00:00 | | 2010-07-09 00:00:00 | +---------------------+ 2 rows in set (0.00 sec) 

你所得到的警告如下:

 +---------+------+-----------------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------------+ | Warning | 1265 | Data truncated for column 'datetime' at row 1 | +---------+------+-----------------------------------------------+ 

你可以通过运行show warnings;来看到它show warnings; 在识别警告时执行另一个查询之前。

该架构不支持您试图插入的数据的时间。 例如:

 mysql> select curtime(); +-----------+ | curtime() | +-----------+ | 11:18:19 | +-----------+ 1 row in set (0.00 sec) 

curdate()只产生date:

 mysql> select curdate(); +------------+ | curdate() | +------------+ | 2010-07-09 | +------------+ 1 row in set (0.00 sec) 

now()以所需的格式生成数据:

 mysql> select now(); +---------------------+ | now() | +---------------------+ | 2010-07-09 11:20:31 | +---------------------+ 1 row in set (0.00 sec) 

看到:

 mysql> insert into timetest values(now()); Query OK, 1 row affected (0.00 sec) mysql> select * from timetest; +---------------------+ | datetime | +---------------------+ | 0000-00-00 00:00:00 | | 2010-07-09 11:20:56 | +---------------------+ 2 rows in set (0.00 sec) 

你应该尝试现在()。