SQL插入DATE类型数据后查询结果不符问题求助
问题分析与解决方法
核心原因
SQLite 没有原生的 DATE 类型,它的 DATE 属于数值亲和类型。当你直接输入 2014-04-05 而不加单引号时,SQLite 会把它当作算术减法表达式计算(2014 - 4 - 5 = 2005),这就是你看到数值结果的原因。
解决步骤
正确插入日期
插入时必须把日期用单引号包裹,作为字符串传入,避免被解析为算术运算:INSERT INTO student (STU_STARTDATE) VALUES ('2014-04-05');查询时格式化输出
即使正确存储了日期,默认查询可能仍显示为数值或非目标格式,可用日期函数格式化:-- 格式化日期字段为YYYY-MM-DD格式 SELECT *, strftime('%Y-%m-%d', STU_STARTDATE) AS STU_STARTDATE FROM student;或者直接用
DATE()函数转换:SELECT *, DATE(STU_STARTDATE) AS FORMATTED_STARTDATE FROM student;
额外说明
如果JDoodle使用的是MySQL等其他数据库,原生DATE类型是支持的,但同样要注意插入时用单引号包裹日期字符串,否则也会被当作算术表达式处理。
内容的提问来源于stack exchange,提问作者Natalija Prošić
相关产品推荐
相关产品推荐

