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

基于datetime列更新id列(生成指定格式ID)的技术求助

嘿,这个需求我太熟了!给你几个不同场景下的实现方案,都是简单靠谱的:

方案1:用Pandas处理表格数据(最常用)

如果你的数据存在Pandas DataFrame里,而且datetime列已经是datetime类型,直接用dt.strftime格式化就行,一步到位:

import pandas as pd

# 假设你的数据框是df,datetime列名为'datetime_col'
df['id'] = df['datetime_col'].dt.strftime('%y%m%d%H%M%S')

要是你的datetime列还只是字符串类型,先转成datetime格式再处理更稳妥:

df['datetime_col'] = pd.to_datetime(df['datetime_col'])
df['id'] = df['datetime_col'].dt.strftime('%y%m%d%H%M%S')

这里的%y代表两位年份(自动去掉开头的"20"),%m/%d是两位月/日,%H是24小时制的小时,%M/%S是两位分/秒,组合起来正好是你要的180225134445格式。

方案2:纯Python处理单个datetime对象/字符串

如果是单独处理某个时间值:

  • 要是已经是datetime对象:
from datetime import datetime

dt_obj = datetime(2018, 2, 25, 13, 44, 45)
id_str = dt_obj.strftime('%y%m%d%H%M%S')
# 输出:'180225134445'
  • 要是还是字符串格式的时间,也可以直接做字符串处理(不过更推荐先转成datetime对象避免格式错误):
time_str = '2018-02-25 13:44:45'
id_str = time_str[2:].replace('-', '').replace(' ', '').replace(':', '')
# 输出:'180225134445'
方案3:数据库中直接转换(SQL)

如果你的数据存在数据库里,直接用SQL函数就能生成目标id:

  • MySQL/MariaDB:用DATE_FORMAT函数,注意分钟用%i(MySQL里%m是月份):
SELECT DATE_FORMAT(datetime_col, '%y%m%d%H%i%s') AS id FROM your_table;
  • PostgreSQL:用TO_CHAR函数:
SELECT TO_CHAR(datetime_col, 'YYMMDDHH24MISS') AS id FROM your_table;
  • SQL Server:用FORMAT函数:
SELECT FORMAT(datetime_col, 'yyMMddHHmmss') AS id FROM your_table;

这些方法都能精准得到你要的id格式,根据你实际使用的工具选就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:21:05