//------------------------------------------------------------------------------
// <copyright file="CSSqlFunction.cs" company="Microsoft">
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// </copyright>
//------------------------------------------------------------------------------
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;

public partial class UserDefinedFunctions
{
    [Microsoft.SqlServer.Server.SqlFunction(Name = "Convert2", IsDeterministic = true,
                                            IsPrecise = true)]
    [return: SqlFacet(MaxSize = 120, IsNullable = true)]
    public static SqlString Convert(SqlDateTime valueDate, SqlString format,
                                    [SqlFacet(IsNullable = true)]SqlString culture)
    {
        try
        {
            // Wenn eine bestimmte Kultur angegeben wurde, wird eine CultureInfo-Instanz
            // erzeugt, die für die Formatierung verwendet wird.
            IFormatProvider formatProvider = null;

            if (!culture.IsNull)
                formatProvider = new System.Globalization.CultureInfo(culture.Value);

            // Formatieren und zurückgeben
            return new SqlString(valueDate.Value.ToString(format.Value, formatProvider));
        }
        catch
        {
            // Tritt ein Fehler auf, wird NULL zurückgeliefert 
            return null;
        }
    }
};