Я использую этот метод. Я бельгийский и говорю голландский, поэтому множественное число часов и минут не просто добавляет '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
Если вы сохраняете текст в 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
В обоих случаях предложение набора символов является необязательным; он будет использовать набор символов соединения, если он выключен. Помните, что если вы используете неправильный набор символов, вы можете получить ошибку транслитерации.