SQL中DATETIME类型字段rdate转换为DATE格式失败该如何解决
DATETIME类型转DATE类型解决方案
你使用的CONVERT(date, rdate)为SQL Server专属语法,需根据实际使用的数据库类型选择对应转换方案:
各数据库查询时临时转换语法
- MySQL / MariaDB
用DATE()函数直接提取日期部分:
如需指定输出格式,可搭配SELECT DATE(rdate) FROM sreservations;DATE_FORMAT函数:SELECT DATE_FORMAT(rdate, '%Y-%m-%d') FROM sreservations; - PostgreSQL
可使用类型转换语法或DATE_TRUNC函数:SELECT rdate::date FROM sreservations; -- 或 SELECT DATE_TRUNC('day', rdate)::date FROM sreservations; - Oracle
用TRUNC函数截断时间部分:SELECT TRUNC(rdate) FROM sreservations; - SQL Server
原有语法本身有效,如未达预期可使用FORMAT函数强制格式化输出:SELECT FORMAT(rdate, 'yyyy-MM-dd') FROM sreservations;
字段类型永久转换为DATE的语法
如果需要将rdate字段的类型从DATETIME永久改为DATE,执行对应ALTER语句即可:
- MySQL / MariaDB:
ALTER TABLE sreservations MODIFY COLUMN rdate DATE; - PostgreSQL:
ALTER TABLE sreservations ALTER COLUMN rdate TYPE DATE; - SQL Server:
ALTER TABLE sreservations ALTER COLUMN rdate DATE; - Oracle:
ALTER TABLE sreservations MODIFY rdate DATE;
内容的提问来源于stack exchange,提问作者ch3ckth3b4ck
相关产品推荐
相关产品推荐

