LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

已有年和月两个字段,新增一个datetime类型字段,将年月更新到新字段SQL怎么写

freeflydom
2026年8月3日 15:13 本文热度 40

:已有年和月两个字段,新增一个datetime类型字段,将年月更新到新字段SQL怎么写


针对你的需求,假设新增的 datetime 字段名为 new_date,原年份字段为 year_col,月份字段为 month_col

由于 datetime 必须包含“日、时、分、秒”,需要设定一个默认值(通常设为每月1号 00:00:00)。不同数据库的语法差异较大,请根据你使用的数据库选择:

1. MySQL

如果 year_colmonth_col 是数字类型(如 20267):

sql
-- 1. 新增字段
ALTER TABLE your_table ADD COLUMN new_date DATETIME;
-- 2. 更新数据(使用 MAKEDATE 拼接)
UPDATE your_table 
SET new_date = MAKEDATE(year_col, 1) + INTERVAL (month_col - 1) MONTH;

如果它们是字符串类型(如 '2026''07'),可使用:

sql
UPDATE your_table 
SET new_date = STR_TO_DATE(CONCAT(year_col, '-', month_col, '-01'), '%Y-%m-%d');

2. SQL Server

使用 DATEFROMPARTS 函数(支持 2012+ 版本):

sql
-- 1. 新增字段
ALTER TABLE your_table ADD new_date DATETIME;
-- 2. 更新数据
UPDATE your_table 
SET new_date = DATEFROMPARTS(year_col, month_col, 1);

注:如果年月字段是字符串,先转为 INTDATEFROMPARTS(CAST(year_col AS INT), CAST(month_col AS INT), 1)


3. PostgreSQL

使用 MAKE_DATE 函数:

sql
-- 1. 新增字段
ALTER TABLE your_table ADD COLUMN new_date TIMESTAMP;
-- 2. 更新数据
UPDATE your_table 
SET new_date = MAKE_DATE(year_col, month_col, 1);

注:PostgreSQL 的 datetime 类型通常用 TIMESTAMP


4. Oracle

Oracle 不支持直接拼接数字,需转为字符串并使用 TO_DATE

sql
-- 1. 新增字段
ALTER TABLE your_table ADD new_date DATE;
-- 2. 更新数据
UPDATE your_table 
SET new_date = TO_DATE(year_col || '-' || month_col || '-01', 'YYYY-MM-DD');



该文章在 2026/8/3 15:13:52 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-9  粤公网安备44030602007207号