1

我们知道人们在他们的电脑中设置他们的日期格式,比如 dd/MM/yyyy,或者可能是 MM/dd/yyyy。所以我只想根据系统设置显示日期。

现在我正在这样做

CONVERT(VARCHAR(10),GETDATE(),101) AS DateOnly;

如果可能,请帮忙

4

2 回答 2

3

这不能在 SQL Server 中完成。它不知道客户端的设置是什么。

您可以在调用应用程序或 Web 服务器中执行此操作。

于 2013-05-15T10:56:24.853 回答
3

我不认为它可以按照您尝试的方式完成..

如果用户正在使用查询工具进行查询,则该查询工具中有关于如何显示日期的设置。

如果您有应用程序层(Web、客户端等),则需要根据某处的语言环境对其进行格式化。

这可以是

a) 在 SQL-Server 上的 SQL 中如下:

DECLARE @d DATETIME = '01/01/2011';
SELECT FORMAT ( @d, 'd', 'en-US' ) AS US_Result;
SELECT FORMAT ( @d, 'd', 'fr-FR' ) AS FR_Result;
SELECT FORMAT ( @d, 'd', 'de-DE' ) AS DE_Result;

(应用程序将区域设置从客户端传递到 SQL)

b) 在应用程序代码 .net/java 中使用例如 Format 类等。

public class FormatDate
{
   public static void Main()
   {
      DateTime dt = DateTime.Now;
      // Sets the CurrentCulture property to U.S. English.
      Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
      // Displays dt, formatted using the ShortDatePattern
      // and the CurrentThread.CurrentCulture.
      Console.WriteLine(dt.ToString("d"));

      // Creates a CultureInfo for German in Germany.
      CultureInfo ci = new CultureInfo("de-DE");
      // Displays dt, formatted using the ShortDatePattern
      // and the CultureInfo.
      Console.WriteLine(dt.ToString("d", ci));
   }
}

c) 在客户端,例如,如果用户正在查看网页,您将需要使用此处概述的 javascript:

以用户的语言环境格式和时间偏移显示日期/时间

于 2013-05-15T11:03:25.793 回答