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

创建PROGRAMMER表插入日期值时遇int与date类型冲突错误求助

解决日期类型冲突问题

错误原因

插入日期时使用1966/04/12这类写法,SQL Server会将其识别为数值除法运算(1966 ÷ 4 ÷ 12),最终得到一个整数结果。而表中DOB和DOJ列的类型是DATE,整数无法直接转换为日期类型,因此触发类型冲突错误。

修正后的插入语句

需将日期值用单引号包裹,作为字符串字面量传入。推荐使用'yyyy-MM-dd'格式,该格式不受系统日期设置影响,能被SQL Server稳定识别:

INSERT INTO PROGRAMMER
VALUES
('ANAND', '1966-04-12', '1992-04-21', 'M', 'PASCAL', 'BASIC', 3200)

按期望格式查询结果

若要以12-Apr-66格式显示日期,可使用CONVERT函数指定格式代码,再通过REPLACE函数调整分隔符:

SELECT 
    PNAME,
    REPLACE(CONVERT(VARCHAR, DOB, 6), ' ', '-') AS DOB,
    REPLACE(CONVERT(VARCHAR, DOJ, 6), ' ', '-') AS DOJ,
    GENDER,
    PROF1,
    PROF2,
    SALARY
FROM PROGRAMMER

其中格式代码6对应输出dd mon yy,替换空格为连字符后即可得到你想要的12-Apr-66样式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 22:00:02