使用自定义设置覆盖区域设置日期。

发布于 2024-08-28 15:01:04 字数 167 浏览 12 评论 0原文

除了 GL 支持之外,是否有一种方法可以在使用 mmm-dd-yyyy 时使用月份和日期的自定义值覆盖区域设置,修改后的西班牙语示例:Jan = ENE、Aug = AGO 或长日期 (mmmm) 一月 = ENERO ,八月 = AGOSTO,或 (dddd) 星期一 = LUNES,星期四 = JUEVES,等等?

Aside from the GL Support, is there a way to override locale settings with custom values for month and day when using mmm-dd-yyyy, modified Spanish examples: Jan = ENE, Aug = AGO, or long dates (mmmm) January = ENERO, August = AGOSTO, or (dddd) Monday = LUNES, Thursday = JUEVES, etc.?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

伴梦长久 2024-09-04 15:01:04

在 Informix 中,有多种方法可以实现这一点,但大多数都是通过 GLS 设施来实现的。你的问题并没有说明你的情况是什么;根据您尝试执行的操作,可能会有不同的答案。我可以看到的场景包括:

  1. 您的系统设置为 CLIENT_LOCALE=en_us.8859-15,但您希望看到格式设置为 CLIENT_LOCALE=es_es.8859-15 有效的日期。
  2. 您已启用西班牙语设置,但您不喜欢它提供的值并希望使用替代名称
  3. 您已启用西班牙语设置,但您希望看到与默认格式不同的日期格式。

等式中的另一个重要因素是 DB_LOCALE 是否设置为与客户端区域设置相同。

另外,您应该确定您正在使用什么作为客户端 API - 同样,根据您使用的内容以及您如何通过 API 处理日期,可能会有不同的答案(如果您要求 API 返回,您会得到不同的结果)作为字符串而不是本机 4 字节有符号整数的 DATE,例如,在第一种情况下,客户端 API 代码将自动转换为字符串;在第二种情况下,您的应用程序代码可以使用客户端 API 函数进行格式化;您控制的价值)。

IDS 有一组广泛的函数来处理 DATE 值的格式。 包括:

  • 今天
  • 日期
  • MDY
  • 日月
  • 工作日
  • ADD_MONTHS
  • TO_CHAR
  • TO_DATE
  • 其中

There are a number of ways to do it in Informix, but most of them work through the GLS facilities. Your question does not make it clear what your scenario is; there could be different answers depending on what you are attempting to do. Scenarios I can see include:

  1. You have a system setup with, say, CLIENT_LOCALE=en_us.8859-15 but you want to see dates formatted as if CLIENT_LOCALE=es_es.8859-15 is in effect.
  2. You have the Spanish setting in effect but you don't like the values it provides and want to use alternative names
  3. You have the Spanish setting in effect but you want to see dates formatted differently from the default format.

Another important factor in the equation is whether DB_LOCALE is set the same as client locale.

Also, you should identify what you are using as the client API - again, there could be different answers depending on what you are using, and also how you are handling dates via the API (you get different results if you ask the API to return a DATE as a string rather than as a native 4-byte signed integer, for example; in the first case, the client API code will do a conversion to string automatically; in the second, your application code can use client API functions to format the value under your control).

IDS has an extensive set of functions to handle the formatting of DATE values. These include:

  • DATE
  • TODAY
  • MDY
  • DAY
  • MONTH
  • YEAR
  • WEEKDAY
  • TO_CHAR
  • TO_DATE
  • ADD_MONTHS
汐鸠 2024-09-04 15:01:04

在甲骨文中:

SQL> alter session set nls_date_format = 'DAY, DD-MONTH-YYYY'
  2  /

Session altered.


SQL> alter session set nls_language='SPANISH'
  2  /

Session altered.


SQL> select sysdate as today, trunc(sysdate,'YYYY') as nyd from dual
  2  /

TODAY                         NYD
----------------------------- -----------------------------
DOMINGO  , 11-ABRIL     -2010 VIERNES  , 01-ENERO     -2010

SQL>

In Oracle:

SQL> alter session set nls_date_format = 'DAY, DD-MONTH-YYYY'
  2  /

Session altered.


SQL> alter session set nls_language='SPANISH'
  2  /

Session altered.


SQL> select sysdate as today, trunc(sysdate,'YYYY') as nyd from dual
  2  /

TODAY                         NYD
----------------------------- -----------------------------
DOMINGO  , 11-ABRIL     -2010 VIERNES  , 01-ENERO     -2010

SQL>
柠檬 2024-09-04 15:01:04

至少在 SQL Server 中,您可以使用 SET LANGUAGE 语句将语言设置为 sys.syslanguages 列表中支持的语言之一。

SET LANGUAGE N'Spanish'

--mmm-dd-yyyy,
Select Left(DateName(mm, GetDate()),3)
    + '-' + Right('0' + Cast(DatePart(dd,GetDate()) As Varchar(2)), 2)
    + '-' + Cast(DatePart(yyyy, GetDate()) As char(4))

请注意,没有本机语言日期格式化函数将返回 mmm-dd-yyyy 格式,因此您必须自己构建它。

In SQL Server at least, you can use the SET LANGUAGE statement to set the language to one of the languages supported in the list of sys.syslanguages

SET LANGUAGE N'Spanish'

--mmm-dd-yyyy,
Select Left(DateName(mm, GetDate()),3)
    + '-' + Right('0' + Cast(DatePart(dd,GetDate()) As Varchar(2)), 2)
    + '-' + Cast(DatePart(yyyy, GetDate()) As char(4))

Note that there is no native date formatting function that will return the mmm-dd-yyyy format, so you have to build that yourself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文