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

SQL如何将数据库VoyageDate列的日期转换为YYYY-MM-DD格式

你原有写法存在两处核心错误:

  1. GETDATE()是获取数据库当前系统时间的函数,不会读取你业务表中存储的VoyageDate字段值
  2. CAST语法使用错误,CAST(GETDATE() AS "VoyageDate")的逻辑是将当前时间转换为名为VoyageDate的自定义类型,和你的需求完全不符。

根据VoyageDate的字段类型不同,对应解法如下:

字段为日期/时间类型(最常见场景)

此时你看到的Nov 25, 2021 12:00:00.0 AM是数据库的默认展示格式,字段本身存储的是标准日期结构,直接调用对应数据库的日期格式化函数即可:

  • MySQL:
SELECT DATE_FORMAT(VoyageDate, '%Y-%m-%d') AS voyageDate FROM 你的实际表名;
  • SQL Server:
SELECT CONVERT(VARCHAR(10), VoyageDate, 23) AS voyageDate FROM 你的实际表名;
  • Oracle/PostgreSQL:
SELECT TO_CHAR(VoyageDate, 'YYYY-MM-DD') AS voyageDate FROM 你的实际表名;

字段为字符串类型

如果VoyageDate本身是字符串字段,存储的就是Nov 25, 2021 12:00:00.0 AM格式的文本,需要先把字符串转成日期类型再格式化,以SQL Server为例:

SELECT CONVERT(VARCHAR(10), CONVERT(DATETIME, VoyageDate, 109), 23) AS voyageDate FROM 你的实际表名;

其他数据库可参照对应字符串转日期的函数逻辑调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:36:03