在sql中将日期转换为西班牙语 [英] convert date to spanish in sql

查看:39
本文介绍了在sql中将日期转换为西班牙语的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在运行一份包含多个英文字段的报告.我在报告末尾有 2 个日期字段,一个必须是英文,另一个必须是西班牙文.日期需要采用的格式是 2012 年 11 月 1 日.我需要西班牙文是 2012 年 11 月 1 日.我无法用西班牙文生成报告的最后一个字段.我在 sql server 2005 中运行.

I am running a report with multiple fields in english. I have 2 date fields at the end of the report, one has to be in English and the other in Spanish. The format the date needs to be in is ie November 1, 2012. I need the spanish to be Novembre 1, 2012. I cannot get the last field of the report to produce in spanish. I am running in sql server 2005.

推荐答案

也许很麻烦,但我不知道如何以更简单的方式做到这一点.

Maybe is cumbersome, but I don't see how to do it on an easier way.

首先,创建一个函数.此功能将利用 系统视图 sys.syslanguages 以获取正确的西班牙语月份名称.参数是有效的日期和语言(sys.syslanguage 视图中的别名).

First, create a function. This function will make use of system view sys.syslanguages to get the correct name of month in spanish. Parameters are a valid date and language (alias on sys.syslanguage view).

CREATE FUNCTION [dbo].[fn_GetMonthName] (
    @Date DATETIME,
    @Language NVARCHAR(100)
)
RETURNS NVARCHAR(400)
AS
BEGIN
    DECLARE @i INT, @m INT,@mlist NVARCHAR(1000)
    SET @m = MONTH(@Date)
    SET @mlist = (SELECT months FROM sys.syslanguages WHERE ALIAS = @language)
    SET @i = 1
    WHILE(@i < @m)
        BEGIN
           SET @mlist = REPLACE(@mlist, SUBSTRING(@mlist,1,CHARINDEX(',',@mlist)) ,'')
           SET @i = @i + 1
        END
    SET @mlist = (CASE CHARINDEX(',',@mlist) WHEN 0 THEN @mlist ELSE SUBSTRING(@mlist,0,CHARINDEX(',',@mlist) ) END )
    RETURN @mlist
END
GO

然后在您需要的任何地方调用该函数:

Then call the function anywhere you need to:

SELECT CONVERT(VARCHAR(20), GETDATE(), 100) AS CurrentDate,
       dbo.fn_GetMonthName (GETDATE(), 'Spanish') AS [Mes-Month]

结果:

      CurrentDate       Mes-Month
 May 24 2013 12:02AM      Mayo

取自 获取特定语言来自 SQL 的月份名称

这篇关于在sql中将日期转换为西班牙语的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆