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

如何将Date/Time字段更新为对应日期的12 AM?

如何将Date/Time字段转换为当日12:00 AM

针对你需要把任意时间的DateTime字段转为当日零点(12:00 AM)的需求,以下是几种常用技术场景的实现方法:

SQL 场景

不同数据库的函数略有差异,核心是提取日期部分并重置时间为零点:

MySQL/MariaDB

UPDATE 你的表名
SET newField = CAST(DATE(startTime) AS DATETIME)
-- 可添加WHERE条件过滤需要更新的行

DATE(startTime)会提取日期部分,再转为DATETIME类型就自动补全00:00:00。

SQL Server

UPDATE 你的表名
SET newField = DATEADD(day, DATEDIFF(day, 0, startTime), 0)

通过计算从0日期到startTime的天数,再把这个天数加回0日期,得到当日零点。

JavaScript 场景(前端/Node.js)

直接操作Date对象,重置时分秒毫秒:

function getDayStart(date) {
  const dayStart = new Date(date);
  dayStart.setHours(0, 0, 0, 0);
  return dayStart;
}

// 示例
const startTime = new Date('2022-03-26T03:40:00'); // 对应26/03/2022 3:40 AM
const newField = getDayStart(startTime);
console.log(newField.toLocaleString('en-GB', { hour12: true })); // 输出 "26/03/2022, 12:00:00 AM"

Python 场景

使用datetime模块的replace方法重置时间部分:

from datetime import datetime

def get_day_start(dt):
    return dt.replace(hour=0, minute=0, second=0, microsecond=0)

# 示例
start_time = datetime.strptime('26/03/2022 3:40 AM', '%d/%m/%Y %I:%M %p')
new_field = get_day_start(start_time)
print(new_field.strftime('%d/%m/%Y %I:%M %p')) # 输出 "26/03/2022 12:00 AM"

核心逻辑总结:不管用哪种技术,本质都是保留原日期的年、月、日,将时、分、秒、毫秒全部设置为0,这样就能得到当日的12:00 AM。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 12:17:20