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

如何通过XML配置将SQL表字段默认值设为仅今日日期(不含时间)

修改方案

调整字段类型和默认值函数两处配置即可实现需求,修改后的完整代码如下:

<property name="today" value="CURDATE()" dbms="mysql"/>

<changeSet author="Trey Collier" id="SCHEJ-376">
    <addColumn tableName="schedule">
        <column name="dateLastPublished" type="DATE" defaultValueDate="${today}">
            <constraints nullable="false" />
        </column>
    </addColumn>
</changeSet>

调整说明

  • 将原配置中的now()替换为MySQL的CURDATE()函数,该函数仅返回当前日期,格式为YYYY-MM-DD,无时分秒内容。也可替换为DATE(NOW()),二者功能完全一致。
  • 将字段类型从DATETIME修改为DATE,MySQL的DATE类型专门用于存储不带时间的日期值,底层不会存储时分秒信息,从存储层面避免多余时间内容出现。

注意:如果原变更集已经在你的环境中执行过,不要直接修改原有变更集内容,需要新增一个独立的变更集来修改字段类型和默认值,避免触发Liquibase的变更集校验错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:12:03