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

Node.js中如何让MySQL直接返回YYYY-MM-DD格式日期?

问题描述

我在Node.js应用中使用MySQL作为数据库,插入日期时采用YYYY-MM-DD格式,但查询数据时返回的日期格式为yyyy-mm-ddT00:00:00.000Z。我仅需要其中的YYYY-MM-DD部分,目前通过JavaScript处理实现,但觉得冗余,想了解能否直接从MySQL获取该格式的日期。

当前查询代码:

db.query(`SELECT agereement_date FROM mt_A1 WHERE ledger_num = 15`,(err,data)=>{
  console.log(data)
})

返回结果:

[
  RowDataPacket {
    agereement_date: 2021-03-07T18:30:00.000Z,
  }
]
解决方案

可以直接通过MySQL内置函数实现,无需在JavaScript中二次处理,具体使用DATE_FORMAT()函数格式化日期字段:

修改后的查询语句:

SELECT DATE_FORMAT(agereement_date, '%Y-%m-%d') AS agereement_date FROM mt_A1 WHERE ledger_num = 15

说明

  • DATE_FORMAT()是MySQL专门用于格式化日期/时间的函数,第一个参数为目标日期字段,第二个参数为格式字符串
  • %Y对应4位年份,%m对应2位月份,%d对应2位日期,组合后正好是你需要的YYYY-MM-DD格式
  • AS agereement_date用于保持返回的字段名和原查询一致,避免修改JavaScript中对字段的引用逻辑

执行该查询后,返回的agereement_date会直接是2021-03-07这样的字符串格式,无需再用JS处理。

如果你的日期字段类型本身是DATE(而非DATETIME或TIMESTAMP),直接查询也会返回YYYY-MM-DD格式,但DATE_FORMAT()适用于所有日期时间类型,兼容性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 09:50:27