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

SQL Server中使用CONVERT(101)转换日期格式为mm/dd/yyyy未生效求助

解决日期格式转换问题

首先明确两种核心场景,对应不同的解决方式:

场景1:creation_date是字符串类型(varchar/nvarchar)

如果你的creation_date存储的是dd/mm/yyyy格式的字符串,而非日期时间类型,直接用CONVERT指定101样式不会生效——因为SQL Server无法识别字符串的原始格式。需要先把字符串转换成日期类型,再转成目标格式:

SELECT CONVERT(nvarchar, TRY_CONVERT(datetime, creation_date, 103), 101) AS converted_date
  • TRY_CONVERT(datetime, creation_date, 103):将dd/mm/yyyy格式的字符串转为日期类型,103是SQL Server对应dd/mm/yyyy的样式编号。
  • TRY_CONVERT相比CONVERT更安全,遇到格式错误的字符串会返回NULL而不是报错。

场景2:creation_date是日期时间类型(datetime/date等)

如果字段本身是日期类型,查询结果显示原格式可能是客户端(比如SSMS)的显示设置导致的。可以用更直观的FORMAT函数(SQL Server 2012及以上版本支持)直接指定输出格式:

SELECT FORMAT(creation_date, 'MM/dd/yyyy') AS converted_date

也可以继续用CONVERT,但要确保转换后的结果是字符串类型,避免客户端自动格式化:

SELECT CONVERT(nvarchar(10), creation_date, 101) AS converted_date

指定长度nvarchar(10)可以避免多余的时间部分(如果是datetime类型)。

注意事项

  • 确认样式编号的正确性:103对应输入格式dd/mm/yyyy,101对应输出格式mm/dd/yyyy。
  • 如果存在格式不规范的字符串数据,先清理数据再转换,避免TRY_CONVERT返回大量NULL。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 21:24:21