【问题标题】:Datetime format in MSSQLMSSQL 中的日期时间格式
【发布时间】:2017-07-03 22:29:00
【问题描述】:

在我的应用程序中,我使用 DateEdit 控件并使用此格式 dd/MM/yyyy 显示日期,因此当我使用 mssql-server 2014(西班牙语)但使用 mssql-server 2008(英语)时,日期可以正确保存日期以 MM/dd/yyyy 格式存储,所以我需要知道 是否有办法以 dd/MM/yyyy 格式存储日期,无论我使用的 mssql-server 的版本或我使用的语言?

编辑:为了更好地解释这就是问题所在,此文本 03/07/2017 存储在 sqlserver 2014 中为 2017 年 7 月 3 日,而 sqlserver 2008 中存储为 2017 年 3 月 7 日。

【问题讨论】:

  • 日期没有格式;格式就是将值显示给人类的方式。使用日期列并传递日期变量类型,一切都会很好
  • 日期的“存储”方式并不像您认为的那样。日期只是从 01/01/1900 开始递增的数字(与时间相同,但时间从午夜开始递增)。如果您总是希望在使用SELECT 时以给定格式显示日期,您可以查看CONVERT 上的页面(在“日期和时间样式”下)。
  • this text 03/07/2017 is stored in the sqlserver 2014 as july 3 of 2017 仅当您获取和传递 text 时。传递 date 并将其保存在 date 列中。将“格式化”留给 UI 层
  • 您如何在 MSSQL 服务器中保存您的日期?您的问题中没有代码。

标签: sql-server vb.net


【解决方案1】:
Convert.ToDateTime(String).ToString("dd-MM-yyyy")

【讨论】:

    【解决方案2】:

    检查您的 MS SQL Server 2008 上的默认语言,如果可能,您可以更改为西班牙语:How to change Date Format after installing SQL Server

    此外,您可以使用格式 103 使用 CONVERT 函数(@ZLK 发布链接)格式化查询输出:CONVERT (DATETIME,[YOURDATE],103)

    【讨论】:

      【解决方案3】:

      以下解决方案有两种选择。您可以根据自己的要求使用一个。

      DECLARE @Date AS TABLE(val VARCHAR(30));
      
      INSERT INTO @Date VALUES('12/04/2016');
      INSERT INTO @Date VALUES('10/01/2015');
      INSERT INTO @Date VALUES('17/03/2017');
      
      --Option 1
      SELECT TRY_PARSE(val AS DATE USING 'en-gb') 'Option 1' FROM @Date;
      
      --Option 2
      SELECT CONVERT(VARCHAR(10),TRY_PARSE(val AS DATE USING 'en-gb'),103) 'Option 2' FROM @Date;
      

      输出是:

      【讨论】:

      • 或者至少这个解决方案应该让你知道你想做什么?
      【解决方案4】:

      正如其他人所说:SQL 不像我们人类那样存储日期。但那是另一回事。 我认为您需要通知 SQL 您的日期格式。 最好的选择是使用 ISO 8601 格式:yyyy-mm-ddThh:mi:ss.mmm。 因此,如果在保存日期之前您只是使用这种格式对其进行格式化,SQL(无论版本或语言)都会将其识别为以年开头,然后是一个月,依此类推。 本主题的关键是使用前 4 位数字。 这样,2017-01-03 将始终是 2017 年 1 月 3 日,而永远不会是 2017 年 3 月 1 日。希望这对您有所帮助。

      【讨论】:

        【解决方案5】:

        使用它可以更改日期格式

        select FORMAT(GETDATE(), 'dd/MMM/yyyy', 'en-us')
        

        【讨论】:

          猜你喜欢
          • 2012-01-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-12-10
          • 1970-01-01
          • 2013-04-23
          相关资源
          最近更新 更多