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

如何将invoice表中缺位年份的错误日期转换为datetime并存入invoicedate2列

修复Invoice表中日期格式错误并转换为datetime类型

我有一张名为invoice的表,包含invoiceno、invoicedate、invoicedate2列。由于失误,invoicedate列的数据类型被设置为nvarchar(10),导致存入的日期数据格式错误,例如"May 1 202"(年份缺失最后一位)。需要将这些数据修正为2024年的正确日期格式,并以datetime格式存入invoicedate2列,预期转换效果:May 1 202 → 2024-05-01

解决方案

1. 先验证转换结果(可选)

执行以下SELECT语句,确认修正后的日期格式是否符合预期:

SELECT 
    invoicedate,
    CONVERT(datetime, REPLACE(invoicedate, '202', '2024'), 109) AS corrected_date
FROM invoice
WHERE invoicedate LIKE '%202'

2. 执行更新操作

确认结果无误后,运行UPDATE语句将修正后的日期写入invoicedate2列:

UPDATE invoice
SET invoicedate2 = CONVERT(datetime, REPLACE(invoicedate, '202', '2024'), 109)
WHERE invoicedate LIKE '%202'

代码说明

  • REPLACE(invoicedate, '202', '2024'):把错误的年份前缀"202"替换为完整的"2024",得到格式正确的日期字符串(如May 1 2024)
  • CONVERT(datetime, ..., 109):使用SQL Server的样式109(对应Mon dd yyyy格式)将字符串转换为datetime类型
  • WHERE invoicedate LIKE '%202':仅针对年份缺失最后一位的错误记录进行更新,避免修改正常数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 19:12:15