【问题标题】:sql server convert date to string MM/DD/YYYYsql server 将日期转换为字符串 MM/DD/YYYY
【发布时间】:2012-08-04 23:42:40
【问题描述】:

我使用的是 SQL Server 2008。

我有以下几点:

    select convert(varchar(20),fmdate) from Sery

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

【问题讨论】:

    标签: sql-server-2008-r2


    【解决方案1】:
    select convert(varchar(10), fmdate, 101) from sery
    

    101 是一个样式参数。

    其余的可以在这里找到。

    T-SQL Cast / Convert date to string

    【讨论】:

      【解决方案2】:

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

      你可以这样做

      CONVERT(VARCHAR(10), fmdate(), 101)
      

      但你不应该

      【讨论】:

      • 实际上有几个原因让数据库这样做,包括服务器位置的时间/日期差异,特别是如果夏令时因素考虑在内。是的,它确实强制采用了可能是特定于语言环境的格式。
      • @zanlok 特定于语言环境的格式通常是个坏主意
      • 我会说你不想在你的数据库中存储一个格式化的日期,但如果你出于某种原因导出字段(比如......到 .csv 文件)你可以这样做的一个非常正当的理由。
      • 有很多理由使用它。这次我的原因是我使用它来格式化日期以在 sp_send_dbmail 正文中呈现...
      【解决方案3】:
      select convert(varchar(10), cast(fmdate as date), 101) from sery
      

      没有强制转换我没有得到 fmdate 转换,所以 fmdate 是一个字符串。

      【解决方案4】:

      【讨论】:

        【解决方案5】:

        自 SQL Server 2012+ 起,您可以使用FORMAT(<i>value, format [, culture ]</i>)

        format 参数采用任何有效的standard format stringcustom formatting string

        示例

        SELECT FORMAT(GETDATE(), 'MM/dd/yyyy')
        

        进一步阅读

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-05-19
          • 1970-01-01
          • 1970-01-01
          • 2011-11-01
          • 2018-02-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多