Привет!
Подскажите, пожалуйста,что сделать,чтобы вырезать из полного времени секунды, т.е мне надо, чтобы время показывало 08:20, например, а не 08:20:00?
и еще один аналогичный вопрос. Мне необходимо,чтобы дату показывало в формате 30.09.05. но у меня оно автоматически изменяется на 30.09.2005. Что делать?
Как вырезать секунды из времени?
т.е. я не могу написать extract (second from time_field), как написано в книжке? Я пробовала, но у меня ничего не получаетсяkdv писал(а):форматированием вывода занимается КЛИЕНТ. Есть такая штука - региональные настройки. И после 2000 года выводить дату 2-мя цифрами стало неприлично.
p.s. дату и время сервер хранит, принимает и выдает клиенту в двоичном виде. Это дело клиентской части, как ее преобразовывать в строку и обратно.
перекручивать дату-время на сервере в строку - весьма сомнительное занятие. Тем более если это делается только для того, чтобы убрать показ клиенту долей секунды.
На тему "пробовала - не получается" - как пробовала и какое сообщение об ошибке выдается?
Если же надо просто в клиентской части убрать миллисекунды, то надо в Fields Editor DataSet-а добавить все столбцы, потом просто указать DisplayFormat у конкретного поля. Ты похоже, плаваешь в схеме компоненты-приложение-сервер. Советую читать книжки, а то можно состроить жуткое приложение.
На тему "пробовала - не получается" - как пробовала и какое сообщение об ошибке выдается?
Если же надо просто в клиентской части убрать миллисекунды, то надо в Fields Editor DataSet-а добавить все столбцы, потом просто указать DisplayFormat у конкретного поля. Ты похоже, плаваешь в схеме компоненты-приложение-сервер. Советую читать книжки, а то можно состроить жуткое приложение.
-
- Сообщения: 22
- Зарегистрирован: 01 ноя 2004, 11:11
Re: Как вырезать секунды из времени?
все на самом деле очень и очень элементарно:Элешки писал(а):Привет!
Подскажите, пожалуйста,что сделать,чтобы вырезать из полного времени секунды, т.е мне надо, чтобы время показывало 08:20, например, а не 08:20:00?
и еще один аналогичный вопрос. Мне необходимо,чтобы дату показывало в формате 30.09.05. но у меня оно автоматически изменяется на 30.09.2005. Что делать?
select
case
when extract(day from current_timestamp)<10 then '0' || cast(extract(day from current_timestamp) as varchar(2)) || '.'
else cast(extract(day from current_timestamp) as varchar(4)) || '.'
end ||
case
when extract(month from current_timestamp)<10 then '0' || cast(extract(month from current_timestamp) as varchar(2)) || '.'
else cast(extract(month from current_timestamp) as varchar(4)) || '.'
end ||
substring(cast(extract(year from current_timestamp) as varchar(4)) from 3 for 2) || ' ' ||
case
when extract(hour from current_timestamp)<10 then '0' || cast(extract(hour from current_timestamp) as varchar(2)) || ':'
else cast(extract(hour from current_timestamp) as varchar(4)) || ':'
end ||
case
when extract(minute from current_timestamp)<10 then '0' || cast(extract(minute from current_timestamp) as varchar(2))
else cast(extract(minute from current_timestamp) as varchar(4))
end from rdb$database
