我如何在mysql中使用默认值存储日期和时间

时间:2013-10-09 08:56:09

标签: java mysql

我使用下面的代码在该表中创建一个表我希望在两个单独的列中存储日期和时间并设置日期和时间默认也使用下面的查询但是得到此错误

create table location_aj
(
  id int not null auto_increment primary key, 
  vehicle_id varchar(10), 
  latitude float(12,2),
  longitude float(12,2), 
  price float(15,2), 
  fdate DATE DEFAULT CURRENT_DATE, 
  ftime TIME DEFAULT CURRENT_TIME
);
  

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行'CURRENT_DATE,ftime TIME DEFAULT CURRENT_TIME'附近使用正确的语法

请帮助

4 个答案:

答案 0 :(得分:2)

MySQL中没有datetime的静态默认值。

您可以使用触发器设置插入时的日期和时间。或者使用默认值为datetime的单个current_timestamp列:

create table location_aj
(
  id int not null auto_increment primary key, 
  vehicle_id varchar(10), 
  latitude float(12,2),
  longitude float(12,2), 
  price float(15,2), 
  fdatetime DATETIME DEFAULT CURRENT_TIMESTAMP
);

答案 1 :(得分:0)

默认值需要是常量而不是函数/表达式,因此它不允许您使用当前时间和当前日期来设置TIME&的默认值。日期分别为。

来自mysql docs

数据类型默认值

  

数据类型规范中的DEFAULT值子句表示a   列的默认值。除了一个例外,默认值必须   是一个常数;它不能是一种功能或表达。

答案 2 :(得分:0)

你不能这样做日期/时间。 试试下面的内容,

CREATE TABLE test(   DATE时间戳NOT NULL DEFAULT CURRENT_TIMESTAMP )

答案 3 :(得分:0)

** 我们不能在MySql中使用默认的任何函数。 ** 您可以在插入日期时使用插入查询存储当前时间和日期。 或者你可以给一些修复日期和时间,我不想要的东西...... 喜欢 创建表location_aj (   id int not null auto_increment主键,   vehicle_id varchar(10),   纬度浮点数(12,2),   经度浮点数(12,2),   价格浮动(15,2),   fdate DATETIME DEFAULT'2008 / 08/26' ); 我们可以从现在开始使用日期():选择DATE_FORMAT(now(),'%​​d /%m /%Y'); 和当前时间使用:选择CURTIME();