【问题标题】:Store date in dd-mm-yyyy format or dd.mm.yyyy format in SQL Server (AWS RDS Distribution)在 SQL Server 中以 dd-mm-yyyy 格式或 dd.mm.yyyy 格式存储日期(AWS RDS 分发)
【发布时间】:2019-08-05 05:17:22
【问题描述】:

我正在将数据从 DB2 for Z/os(大型机)迁移到 SQL Server 的 RDS 分发版。

在大型机中,日期以欧元格式存储,即 DD.MM.YYYY,当我将数据迁移到 SQL Server 时,数据以 YYYY-MM-DD ISO 格式存储在 SQL Server 中。

我的所有应用程序都希望日期为 DD.YY.MMMM 格式。我知道我可以在应用程序中使用转换功能来格式化日期以转换为欧元格式。如果我走这条路,有成千上万的程序需要改变。

有没有一种方法可以强制 SQL Server 以 DD.MM.YYYY 或 DD/MM/YYYY 格式存储日期?

我已经尝试将 SQL 服务器的默认语言更改为“英式英语”,但似乎没有任何帮助。当我发出“DBCC USEROPTIONS”时,它显示语言为“BRITISH”,日期显示为“dmy”,但当应用程序检索日期时,它仍然是 yyyy-mm-dd 格式。

我的应用程序通过 ODBC 驱动程序连接到 SQL Server,我尝试从控制面板更改操作系统日期以及 dd/mm/yyyy 格式。关于这个问题的任何建议都会有很大帮助。

提前致谢!

我已经尝试将 SQL 服务器的默认语言更改为“英式英语”,但似乎没有任何帮助。当我发出“DBCC USEROPTIONS”时,它显示语言为“BRITISH”,日期显示为“dmy”,但当应用程序检索日期时,它仍然是 yyyy-mm-dd 格式。

【问题讨论】:

  • SQL Server 不会以任何特定格式存储日期 - 它存储为 二进制数据。格式化仅在您获取数据并将其显示在管理工具(如 SSMS)或您的应用程序中时发生。因此,您不能将 SQL Server“强制”为任何特定格式 - 因为没有.....
  • 谢谢 Marc.... 那么有没有一种方法可以默认从服务器以 DD.MM.YYYY 或 DD/MM/YYYY 格式返回日期值,而不必更改申请代码?

标签: sql-server date formatting


【解决方案1】:

如果您想保证日期以 dd.mm.yyyy 的形式返回,那么您可以将它们转换为字符串:

select convert(char(10), datecol, 104)

在 SQL Server 中,您可以通过使用视图或向表中添加计算列来处理此问题:

alter table d add datecol_ddmmyyyy as ( convert(char(10), datecol, 104) );

否则,应用程序应该能够以本机格式提取 SQL Server 日期。这仅在它们被转换为字符串时才相关。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-12
    相关资源
    最近更新 更多