2

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

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

4 回答 4

2

dateMySQL 中没有和time单独的静态默认值。

您可以使用触发器来设置插入的日期和时间。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
);
于 2013-10-09T09:08:11.720 回答
0

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

来自mysql 文档

数据类型默认值

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

于 2013-10-09T09:00:38.697 回答
0

**我们不能在 MySql 中使用任何具有默认值的函数。** 您可以在插入日期时使用插入查询存储当前时间和日期。或者你可以给一些固定的日期和时间,我不想要的东西......比如创建表location_aj(id int not null auto_increment 主键,vehicle_id varchar(10),latitude float(12,2) , 经度浮动(12,2), 价格浮动(15,2), fdate DATETIME DEFAULT '2008/08/26' ); 我们可以使用 now() 获取日期: select DATE_FORMAT(now(),'%d/%m/%Y'); 和当前时间使用:选择 CURTIME();

于 2013-10-09T10:05:45.463 回答
0

你不能那样做 DATE/TIME。试试下面,

创建表testDATEtimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP)

于 2013-10-09T09:07:46.683 回答