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

MySQL:基于date_activated列生成当年第一天的Datetime列

生成日期列对应年度第一天的Datetime数据

现有数据表包含date_activated日期列,需要新增一列,将该列日期转换为对应年份第一天的Datetime格式数据,示例如下:

iddate_activateddatetime
12016-05-122016-01-01 00:00:00
22019-05-162019-01-01 00:00:00

用Pandas实现

  1. 先确保date_activated列是datetime类型(如果原本不是的话):
import pandas as pd
df['date_activated'] = pd.to_datetime(df['date_activated'])
  1. 新增目标列,生成年度第一天的Datetime数据:
# 方法1:利用周期转换
df['datetime'] = df['date_activated'].dt.to_period('Y').dt.start_time

# 方法2:直接构造日期
from datetime import datetime
df['datetime'] = df['date_activated'].apply(lambda x: datetime(x.year, 1, 1))

用SQL实现(不同数据库写法)

MySQL

先新增列,再更新数据:

ALTER TABLE your_table ADD COLUMN datetime DATETIME;
UPDATE your_table SET datetime = DATE_FORMAT(date_activated, '%Y-01-01 00:00:00');

PostgreSQL

ALTER TABLE your_table ADD COLUMN datetime TIMESTAMP;
UPDATE your_table SET datetime = DATE_TRUNC('year', date_activated);

SQL Server

ALTER TABLE your_table ADD datetime DATETIME;
UPDATE your_table SET datetime = DATEFROMPARTS(YEAR(date_activated), 1, 1);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 07:35:27