【问题标题】:how i can store date and time with default value in mysql我如何在mysql中使用默认值存储日期和时间
【发布时间】:2013-10-09 08:56:09
【问题描述】:

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

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)”附近使用正确的语法

请帮忙

【问题讨论】:

  • 我认为 CURRENT_DATE 和 CURRENT_TIME 在默认选项中的 mysql 中不可用。只有 current_timestamp 可用

标签: java mysql


【解决方案1】:

在 MySQL 中,datetime 没有单独的静态默认值。

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

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
);

【讨论】:

    【解决方案2】:

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

    来自mysql docs

    数据类型默认值

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

    【讨论】:

      【解决方案3】:

      您不能这样做 DATE/TIME。 试试下面的,

      创建表test ( DATEtimestamp NOT NULL DEFAULT CURRENT_TIMESTAMP )

      【讨论】:

        【解决方案4】:

        ** 我们不能在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' ); 我们可以使用 now() 获取日期: select DATE_FORMAT(now(),'%d/%m/%Y'); 和当前时间使用:select CURTIME();

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-08-24
          • 2019-09-10
          • 2021-01-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-02-16
          相关资源
          最近更新 更多