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

如何将T-SQL日期相关查询代码正确转换为MySQL实现

原始T-SQL逻辑说明

原MS SQL Server代码的核心作用是:

  • 截断输入时间戳的时间部分,仅保留日期数据
  • 按照美国英语区短日期规则(MM/dd/yyyy,月/日/年,数字无前导零)格式化输出
    示例输入2021-08-03 00:00:00的预期输出为8/3/2021。
现有MySQL代码错误点
  • 函数误用:MySQL内置FORMAT函数仅用于数字格式化,无法处理日期格式化需求,日期格式化需使用DATE_FORMAT函数
  • 逻辑错误:DATEDIFF(NOW(), ma.Timestamp)计算的是当前时间与目标字段的天数差,完全不符合原代码「保留原日期、仅移除时间部分」的需求
  • 多余操作:ADDDATE(xxx, INTERVAL 0 DAY)无实际业务作用,属于冗余代码
修正后代码

固定示例输入测试版本

SELECT DATE_FORMAT('2021-08-03 00:00:00', '%c/%e/%Y') AS `day`;

业务字段适配版本(对应ma.Timestamp字段)

SELECT DATE_FORMAT(ma.Timestamp, '%c/%e/%Y') AS `day`
FROM 你的业务表名 ma;
格式符匹配说明

DATE_FORMAT使用的格式符和原T-SQL规则完全对齐:

  • %c:输出月份数字,无前导零,匹配原格式的月份输出规则
  • %e:输出日期数字,无前导零,匹配原格式的日期输出规则
  • %Y:输出4位完整年份,匹配原格式的年份输出规则

测试输入2021-08-03 00:00:00时,上述代码输出结果和原T-SQL输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:57:03