sql server将日期转换为字符串MM/DD/YYYY

Nat*_*Pet 40 sql-server-2008-r2

我正在使用SQL Server 2008.

我有以下内容:

    select convert(varchar(20),fmdate) from Sery
Run Code Online (Sandbox Code Playgroud)

如何将日期转换为字符串,使其显示为MM/DD/YYYY

TFD*_*TFD 66

该任务应该由软件堆栈中的下一层完成.SQL是一个数据存储库,而不是一个表示系统

你可以做到

CONVERT(VARCHAR(10), fmdate(), 101)
Run Code Online (Sandbox Code Playgroud)

但你不应该

  • 实际上有几个原因让数据库执行此操作,包括服务器位置的时间/日期差异,特别是如果夏令时因素.是的,它确实强制了可能是特定于语言环境的格式. (12认同)
  • 我会说你不想在你的数据库中存储一个格式化的日期,但如果你出于某种原因导出该字段(比如说...到.csv文件),你可能有一个非常有效的理由这样做. (7认同)
  • @zanlok 特定于区域设置的格式通常是一个坏主意 (2认同)
  • 有很多理由使用它。这次我的原因是我使用它来格式化日期以在 sp_send_dbmail 的正文中显示... (2认同)

Ton*_*son 22

select convert(varchar(10), fmdate, 101) from sery
Run Code Online (Sandbox Code Playgroud)

101是一种风格论证.

其余的人可以在这里找到.

T-SQL将日期转换为字符串


Kyl*_*Mit 7

从 SQL Server 2012+ 开始,您可以使用FORMAT(value, format [, culture ])

其中format参数采用任何有效的标准格式字符串自定义格式字符串

例子

SELECT FORMAT(GETDATE(), 'MM/dd/yyyy')
Run Code Online (Sandbox Code Playgroud)

延伸阅读


小智 5

select convert(varchar(10), cast(fmdate as date), 101) from sery
Run Code Online (Sandbox Code Playgroud)

如果没有强制转换,我就无法转换 fmdate,所以 fmdate 是一个字符串。