You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

H2数据库(1.4.199版本)创建含日期类型表报50004错误求助

解决H2 1.4.199建表时DATE类型的50004未知数据类型错误

我来帮你搞定这个问题,你的建表语句里有几个语法错误,直接导致了50004未知数据类型的报错,咱们一步步来修正:

问题分析

你的原语句里有两个核心问题:

  • 日期字段的语法完全错误:DATE - FORMAT yyyy-mm-dd不是合法的SQL字段定义,H2中日期类型直接用DATE即可,字段定义不需要指定显示/存储格式——格式是在插入数据或查询结果时处理的,不是字段结构的一部分。
  • 使用了关键字作为字段名:DATE是H2的保留关键字,直接用它当字段名会触发语法冲突,建议换成非关键字的名称(比如CHAPTER_DATE),或者用反引号包裹(`DATE`)。

修正后的建表语句

CREATE TABLE IF NOT EXISTS chapter (
    CHAPTER_ID BIGINT PRIMARY KEY,
    STUDENT_ID BIGINT,
    CHAPTER_DATE DATE,
    UNIQUE (CHAPTER_DATE)
);

补充说明

  1. 关于日期类型:H2 1.4.199的DATE类型会存储标准的日期值(ISO 8601格式:yyyy-MM-dd),插入数据时可以直接传入符合格式的字符串,比如INSERT INTO chapter VALUES(1, 1001, '2024-05-20'),或者用日期函数(比如CURRENT_DATE)。
  2. 如果需要格式化日期输出,查询时可以用FORMATDATETIME函数,比如:
    SELECT CHAPTER_ID, STUDENT_ID, FORMATDATETIME(CHAPTER_DATE, 'yyyy-MM-dd') FROM chapter;
    
  3. 另外,原语句里的long类型在H2中建议用BIGINT(虽然H2支持long作为别名,但BIGINT是标准SQL类型,兼容性更好)。

内容的提问来源于stack exchange,提问作者user11416172

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 22:17:29