sql читать blob как текст

Я использую этот метод. Я бельгийский и говорю голландский, поэтому множественное число часов и минут не просто добавляет 's' до конца, но почти другое слово, чем единственное.

Это может показаться длинным, но это очень читаемо, я думаю:

 public static string SpanToReadableTime(TimeSpan span)
    {
        string[] values = new string[4];  //4 slots: days, hours, minutes, seconds
        StringBuilder readableTime = new StringBuilder();

        if (span.Days > 0)
        {
            if (span.Days == 1)
                values[0] = span.Days.ToString() + " dag"; //day
            else
                values[0] = span.Days.ToString() + " dagen";  //days

            readableTime.Append(values[0]);
            readableTime.Append(", ");
        }
        else
            values[0] = String.Empty;


        if (span.Hours > 0)
        {
            if (span.Hours == 1)
                values[1] = span.Hours.ToString() + " uur";  //hour
            else
                values[1] = span.Hours.ToString() + " uren";  //hours

            readableTime.Append(values[1]);
            readableTime.Append(", ");

        }
        else
            values[1] = string.Empty;

        if (span.Minutes > 0)
        {
            if (span.Minutes == 1)
                values[2] = span.Minutes.ToString() + " minuut";  //minute
            else
                values[2] = span.Minutes.ToString() + " minuten";  //minutes

            readableTime.Append(values[2]);
            readableTime.Append(", ");
        }
        else
            values[2] = string.Empty;

        if (span.Seconds > 0)
        {
            if (span.Seconds == 1)
                values[3] = span.Seconds.ToString() + " seconde";  //second
            else
                values[3] = span.Seconds.ToString() + " seconden";  //seconds

            readableTime.Append(values[3]);
        }
        else
            values[3] = string.Empty;


        return readableTime.ToString();
    }//end SpanToReadableTime
0
задан Arioch 'The 18 January 2019 в 17:19
поделиться

1 ответ

Если вы сохраняете текст в BLOB-объекте, вы должны сделать его blob sub_type text (он же blob sub_type 1) вместо blob (он же blob sub_type binary, он же blob sub_type 0). Хотя это не гарантия (некоторые драйверы Firebird не различают подтипы BLOB-объектов).

Чтобы преобразовать двоичный BLOB-объект в текстовый BLOB-объект, используйте

select cast(binblob as blob sub_type text character set utf8) from blobtbl

или без предложения набора символов:

select cast(binblob as blob sub_type text) from blobtbl

В качестве альтернативы, вы можете привести к VARCHAR, но сделать убедитесь, что вы указали достаточно длинный varchar для хранения всего значения, иначе вы получите ошибку усечения. Например:

select cast(binblob as varchar(1000) character set utf8) from blobtbl

В обоих случаях предложение набора символов является необязательным; он будет использовать набор символов соединения, если он выключен. Помните, что если вы используете неправильный набор символов, вы можете получить ошибку транслитерации.

0
ответ дан Mark Rotteveel 18 January 2019 в 17:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: