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

如何将DateTime时间四舍五入到最近半小时并生成指定格式新列?

实现方案

你需要的是按向下取最近的半小时整数倍、最终秒位固定为0的规则转换时间,以下是不同常用场景的实现代码:

1. MySQL 环境

SELECT 
    DateTime,
    DATE_FORMAT(
        FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(DateTime) / 1800) * 1800),
        '%Y-%m-%d %H:%i:00'
    ) AS Converted
FROM 你的表名;

原理:1800是半小时对应的秒数,先将时间转为时间戳除以1800向下取整,再还原为时间格式化即可。

2. SQL Server 环境

SELECT 
    DateTime,
    DATEADD(MINUTE, DATEDIFF(MINUTE, 0, DateTime) / 30 * 30, 0) AS Converted
FROM 你的表名;

原理:计算从基准时间到当前时间的总分钟数,除以30取整再乘以30,加回基准时间就得到半小时取整结果,自动秒位为0。

3. Python Pandas 环境

如果是用Python处理数据表:

import pandas as pd

# 假设df是你的数据表,DateTime列已转为datetime64类型
df['Converted'] = df['DateTime'].dt.floor('30min').dt.strftime('%Y-%m-%d %H:%M:00')

原理:用pandas内置的floor方法直接按30分钟向下取整,再格式化输出即可,完全匹配你给出的示例结果。

内容的提问来源于stack exchange,提问作者UDAYA KUMAR R

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 11:21:01