功能“TO_DATE”未找到; SQL语句:在H2数据库中而不使用TO_CHAR

时间:2018-06-17 15:27:42

标签: mysql sql h2

不重复: 我收到错误Caused by: org.h2.jdbc.JdbcSQLException: Function "TO_DATE" not found; SQL statement:

我可以用它替换它以便运行它。我使用RazorSql从oracle db创建mysql。现在我试图在H2数据库中运行它。

导致错误的mysql:

CREATE TABLE ASSET (
    ASSET_ID DECIMAL(22) NOT NULL,
    SHOP_ID DECIMAL(22) NOT NULL,
    NAME VARCHAR(200) NOT NULL,
    TYPE_ID DECIMAL(22) NOT NULL,
    CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP  NOT NULL,
    MODIFIED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP  NOT NULL,
    VALID_FROM datetime DEFAULT to_date('2013-12-01', 'YYYY-MM-DD')  NOT NULL,
    VALID_TILL datetime DEFAULT to_date('2113-12-01', 'YYYY-MM-DD')  NOT NULL,
    PRIMARY KEY (ASSET_ID)
);

1 个答案:

答案 0 :(得分:0)

在MySQL中,您可以这样做:

VALID_FROM datetime DEFAULT '2013-12-01'  NOT NULL,
VALID_TILL datetime DEFAULT '2113-12-01'  NOT NULL,

我认为没有一种语法适用于MySQL和Oracle。虽然MySQL确实支持DATE关键字(如DATE '2013-12-01'中所述),但这似乎无法作为DEFAULT值生效。