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

日期格式转换:从DD/MM/YYYY转YYYY/MM/DD的SQL实现需求

日期列格式转换与排序的正确写法

你的当前SQL存在两个问题:

  • 日期转换逻辑错误:直接对DD/MM/YYYY格式的varchar列用CONVERT(nvarchar(10), DOR, 111),SQL会默认按MM/DD/YYYY解析原字符串,导致日期值被错误转换(比如06/02/2024会被当成2024年6月2日,而非2月6日)。
  • 排序逻辑错误:order by 'DateOfReg' ASC是按字符串字面量排序,所有行的排序键都是'DateOfReg',等于没有实际排序。

正确的写法需要先把原字符串转成真实日期类型,再转换展示格式,同时基于日期类型排序:

SELECT CONVERT(nvarchar(10), CONVERT(date, DOR, 103), 111) AS DateOfReg
FROM Fleet06Feb24
ORDER BY CONVERT(date, DOR, 103) ASC

关键说明:

  • CONVERT(date, DOR, 103):把DD/MM/YYYY格式的字符串转成日期类型,103是SQL Server中对应欧洲日期格式的代码,确保解析正确。
  • CONVERT(nvarchar(10), ..., 111):把日期类型转成YYYY/MM/DD格式的字符串用于展示,111是对应该格式的代码。
  • 排序时直接用转换后的日期类型,保证排序逻辑完全符合日期先后顺序,避免字符串排序可能出现的异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 03:42:09