在H2数据库中插入时间 - 未找到功能“PARSEDATETIME”

时间:2017-03-10 17:01:39

标签: java mysql sql h2

我有这张桌子

pear7 config-set php_suffix -7.0 system

我尝试插入TIME类型的值(*日期数据类型。格式为yyyy-MM-dd.Mapped到java.sql.Date,时间设置为00:00:00(或者如果由于夏令时变化而导致给定日期和时区的午夜不存在,则下一个可能的时间。)

   -- table T_TIME_LAPSE H2 Database Engine
CREATE TABLE IF NOT EXISTS t_time_lapse (
      id          bigint  PRIMARY KEY,
      name        varchar(50) NOT NULL,
      description varchar(200) NOT NULL,
      sunday      boolean DEFAULT NULL,
      monday      boolean DEFAULT NULL,
      tuesday     boolean DEFAULT NULL,
      wednesday   boolean DEFAULT NULL,
      thursday    boolean DEFAULT NULL,
      friday      boolean DEFAULT NULL,
      saturday    boolean DEFAULT NULL,
      init_period date    NOT NULL ,
      end_period  date    NOT NULL ,
      init_time   time    DEFAULT NULL,
      end_time    time    DEFAULT NULL,
      company_id  bigint DEFAULT NULL,
 );

但是我收到了这个错误

    -- table     t_time_lapse
insert into T_TIME_LAPSE (ID, NAME, DESCRIPTION, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY, INIT_PERIOD, END_PERIOD, INIT_TIME, END_TIME, COMPANY_ID) 
    values (1777,'key', 'key', 1,1,1,1,1,1,1,CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, PARSEDATETIME('12:22','HH:mm'), PARSEDATETIME('16:22','HH:mm'), 1);

1 个答案:

答案 0 :(得分:3)

您的语法中有错误,但您错过了查询中的''

PARSEDATETIME('16:22', 'HH:MM'), 1)
//---------------------^-----^

使用H2 parsedatetime

检查语法的日期

所以你的查询应该像这样结束:

..., PARSEDATETIME('12:22', 'HH:mm'), PARSEDATETIME('16:22', 'HH:mm'), 1));