【问题标题】:Date Format dd/mm/yyyy to yyyy/mm/dd日期格式 dd/mm/yyyy 到 yyyy/mm/dd
【发布时间】:2015-10-13 13:20:24
【问题描述】:

如何将dd/mm/yyyy 转换为yyyy/mm/dd。有时 SQL Server 会日复一日地更改月份。

例如:02/12/2014(dd/mm/yyyy)2014/02/12(yyyy/dd/mm) 但正确的是 2014/12/02(yyyy/mm/dd)

【问题讨论】:

  • 在可能的情况下,最好只使用正确的日期时间类型(例如,SQL Server 中的datetimedatetime2,无论您的应用程序语言中的类型是什么)。这些没有 格式。理想情况下,您从尽可能接近用户输入的字符串中解析,并在 UI 呈现中尽可能晚地转换回字符串。除此以外,避免字符串,让语言绑定处理类型之间的转换。

标签: sql sql-server date datetime sql-server-2012


【解决方案1】:

如果要指定日期的格式需要转换(有点烦)

对于 yyyy/mm/dd 格式使用

convert(varchar, getdate(), 111)

您可以在此处查看不同格式类型的良好列表 https://anubhavg.wordpress.com/2009/06/11/how-to-format-datetime-date-in-sql-server-2005/

【讨论】:

    【解决方案2】:

    您可以使用以下 -

    SELECT CONVERT(NVARCHAR(10),<yourdate>,103) -- 代表dd/mm/yyyy

    SELECT CONVERT(NVARCHAR(10),<yourdate>,111) -- 代表yyyy/mm/dd

    【讨论】:

      【解决方案3】:

      我愿意这样做:

      如果您将日期存储为字符串(不推荐

      DECLARE @Date VARCHAR(10) = '02/12/2014';
      
      SELECT CONVERT(VARCHAR(10), CONVERT(DATE, @Date, 103), 111);
      
      1. 确保您的日期可以转换为DATE
      2. 将其转换为所需的date style

      如果您将日期存储为 date

      SELECT CONVERT(VARCHAR(10), @Date, 111);
      

      输出:

      2014/12/02

      【讨论】:

        猜你喜欢
        • 2016-01-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-05
        • 1970-01-01
        相关资源
        最近更新 更多