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

如何解决Microsoft SQL Server表插入日期值的转换报错

在Microsoft SQL Server中解决日期插入报错的正确语句

首先是你创建的数据表:

CREATE TABLE HUL 
(
   Company_name varchar(50),
   Purchase_date date,
   Quantity int,
   Price float,
   Age int,
   profit_and_loss float
)

你遇到的日期插入报错,核心原因是SQL Server无法自动识别你使用的DD-MM-YYYY格式字符串,或是CAST语句存在语法错误。以下是几种可行的正确插入语句:

方法1:使用SQL Server默认支持的YYYY-MM-DD格式

直接使用标准日期格式插入,无需转换:

INSERT INTO HUL (Company_name, Purchase_date, Quantity, Price, Age, profit_and_loss)
VALUES ('Hindusthan_Unilever', '2022-03-25', 1, 1950.40, 125, 669.45);

方法2:用CONVERT函数指定格式代码

针对你习惯的DD-MM-YYYY格式,使用CONVERT并指定格式代码103(对应DD/MM/YYYY,连字符分隔也能识别):

INSERT INTO HUL (Company_name, Purchase_date, Quantity, Price, Age, profit_and_loss)
VALUES ('Hindusthan_Unilever', CONVERT(DATE, '25-03-2022', 103), 1, 1950.40, 125, 669.45);

方法3:用DATEFROMPARTS函数构造日期

直接传入年、月、日数值,完全避免格式问题:

INSERT INTO HUL (Company_name, Purchase_date, Quantity, Price, Age, profit_and_loss)
VALUES ('Hindusthan_Unilever', DATEFROMPARTS(2022, 3, 25), 1, 1950.40, 125, 669.45);

修复你之前的CAST语句

你之前的CAST多了一个逗号,若要处理无分隔符的25032022,可以这样写(需先添加分隔符再转换):

INSERT INTO HUL (Company_name, Purchase_date, Quantity, Price, Age, profit_and_loss)
VALUES ('Hindusthan_Unilever', CONVERT(DATE, STUFF(STUFF('25032022',3,0,'-'),6,0,'-'), 105), 1, 1950.40, 125, 669.45);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 12:18:21