如何让SQL Server 2019 Express的date类型全局显示为MM-DD-YYYY格式?
SQL Server 2019 Express 日期列统一显示为 MM-DD-YYYY 的方法
首先明确:SQL Server 的 date 类型是无格式存储的,它保存的是日期的内部数值,显示格式由客户端工具或查询逻辑决定,无法直接在表列层面设置固定显示格式。以下是全局生效的解决方案:
一、修改SSMS(SQL Server Management Studio)的全局显示设置
这个设置会让你在SSMS里编辑、查看所有表的日期列时,都以MM-DD-YYYY格式显示:
- 打开SSMS,点击顶部菜单「工具」→「选项」
- 在弹出的窗口中,展开「环境」→「区域设置」
- 找到「日期和时间格式」,选择「MM-DD-YYYY」
- 点击「确定」后重启SSMS,设置即可生效
二、修改数据库/登录账号的默认语言(全局影响查询格式)
通过修改默认语言,让该账号/数据库下的所有查询结果,日期默认以MM-DD-YYYY格式返回:
- 修改指定登录账号的默认语言:
ALTER LOGIN [你的登录账号名] WITH DEFAULT_LANGUAGE = us_english; - 修改整个数据库的默认语言:
ALTER DATABASE [你的数据库名] SET DEFAULT_LANGUAGE = us_english;
注意:这个设置会同时影响货币、数字等其他区域格式,不止日期。
三、查询时强制转换格式(灵活可控)
如果不想修改全局语言设置,可在查询时显式转换日期格式,确保输出为MM-DD-YYYY:
- 使用
FORMAT函数(SQL Server 2012+支持):SELECT FORMAT(日期列名, 'MM-dd-yyyy') AS 格式化日期 FROM 表名; - 使用
CONVERT函数(兼容性更好),样式码101对应MM-DD-YYYY:SELECT CONVERT(VARCHAR, 日期列名, 101) AS 格式化日期 FROM 表名;
重要提醒:不要将
date类型改成varchar来存储格式化后的日期,这会丢失日期的计算、比较能力,还容易引发数据一致性问题。
内容的提问来源于stack exchange,提问作者John
相关产品推荐
相关产品推荐

