Как вырезать секунды из времени?

Запросы, планы, оптимизация запросов, ...

Модераторы: kdv, CyberMax

Ответить
Элешки
Сообщения: 8
Зарегистрирован: 28 сен 2005, 15:32

Как вырезать секунды из времени?

Сообщение Элешки » 30 сен 2005, 11:26

Привет!
Подскажите, пожалуйста,что сделать,чтобы вырезать из полного времени секунды, т.е мне надо, чтобы время показывало 08:20, например, а не 08:20:00?
и еще один аналогичный вопрос. Мне необходимо,чтобы дату показывало в формате 30.09.05. но у меня оно автоматически изменяется на 30.09.2005. Что делать?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 30 сен 2005, 11:34

форматированием вывода занимается КЛИЕНТ. Есть такая штука - региональные настройки. И после 2000 года выводить дату 2-мя цифрами стало неприлично.

p.s. дату и время сервер хранит, принимает и выдает клиенту в двоичном виде. Это дело клиентской части, как ее преобразовывать в строку и обратно.

Элешки
Сообщения: 8
Зарегистрирован: 28 сен 2005, 15:32

Сообщение Элешки » 30 сен 2005, 12:12

kdv писал(а):форматированием вывода занимается КЛИЕНТ. Есть такая штука - региональные настройки. И после 2000 года выводить дату 2-мя цифрами стало неприлично.

p.s. дату и время сервер хранит, принимает и выдает клиенту в двоичном виде. Это дело клиентской части, как ее преобразовывать в строку и обратно.
т.е. я не могу написать extract (second from time_field), как написано в книжке? Я пробовала, но у меня ничего не получается

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 30 сен 2005, 12:22

перекручивать дату-время на сервере в строку - весьма сомнительное занятие. Тем более если это делается только для того, чтобы убрать показ клиенту долей секунды.
На тему "пробовала - не получается" - как пробовала и какое сообщение об ошибке выдается?

Если же надо просто в клиентской части убрать миллисекунды, то надо в Fields Editor DataSet-а добавить все столбцы, потом просто указать DisplayFormat у конкретного поля. Ты похоже, плаваешь в схеме компоненты-приложение-сервер. Советую читать книжки, а то можно состроить жуткое приложение.

Владимир Каратаев
Сообщения: 22
Зарегистрирован: 01 ноя 2004, 11:11

Re: Как вырезать секунды из времени?

Сообщение Владимир Каратаев » 30 сен 2005, 14:23

Элешки писал(а):Привет!
Подскажите, пожалуйста,что сделать,чтобы вырезать из полного времени секунды, т.е мне надо, чтобы время показывало 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

:twisted:

Ответить