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

SQL Server 2016中如何将字符串日期02/13/2018转为13/02/2018?

解决SQL Server中字符串日期转换格式的问题

你的问题出在直接对字符串字段使用CONVERT的样式参数——CONVERT里的样式编号(比如103)只对日期/时间类型的数据生效,而你现在操作的是StringField5这个字符串字段,所以直接用样式参数根本不会起作用,自然返回原格式。

要实现把02/13/2018转换成13/02/2018,需要分两步走:

  • 第一步:把字符串类型的日期解析成SQL Server能识别的DATE或DATETIME类型。你的原字符串是MM/dd/yyyy格式(美国日期格式),对应样式编号是101,所以用CONVERT(date, StringField5, 101)来完成转换。
  • 第二步:把解析后的日期类型再转换成你想要的dd/MM/yyyy格式(对应样式编号103)。

最终的SQL语句应该是这样的:

SELECT CONVERT(varchar(10), CONVERT(date, StringField5, 101), 103) AS FormattedDate
FROM MyTable 
WHERE OrderID = 1

如果担心字段里存在格式不正确的字符串导致转换报错,可以用TRY_CONVERT替代CONVERT,这样转换失败时会返回NULL而不是抛出错误:

SELECT CONVERT(varchar(10), TRY_CONVERT(date, StringField5, 101), 103) AS FormattedDate
FROM MyTable 
WHERE OrderID = 1

另外额外提一句:如果这个字段后续经常需要做日期相关的查询或转换,建议直接把字段类型改成DATE,这样能避免每次都要做两次转换的麻烦,还能保证数据的合法性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:09:44