powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как убрать время в date первого диалекта?
11 сообщений из 11, страница 1 из 1
Как убрать время в date первого диалекта?
    #39446902
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как убрать время в date первого диалекта?
Есть вариант
select extract(year from cast('today' as timestamp)) || '.' || extract(month from cast('today' as timestamp)) || '.' || extract(day from cast('today' as timestamp))
from RDB$DATABASE

Но результат корявый, например сегодня 2017.5.1, а надо 2017.05.01
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39446903
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

LPAD тебе поможет
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39446905
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисGallemar,

LPAD тебе поможет

через if x<10 then LPAD (x, 2, '0') ?
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39446906
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

можно без IF
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39446908
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис, а пример можешь дать?
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39446910
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
  FUNCTION DateToChar(ADate DATE) RETURNS CHAR(10)
  AS
  BEGIN
    RETURN LPAD(EXTRACT(DAY FROM ADate), 2, '0') || '.' ||
           LPAD(EXTRACT(MONTH FROM ADate), 2, '0') || '.' ||
           CAST(EXTRACT(YEAR FROM ADate) AS CHAR(4));
  END
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39446911
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gallemar,

точно так-же, только без IF, то есть безусловно.
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39446945
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странно
в запросе работает без проблем:
select LPAD(EXTRACT(DAY FROM cast('today' as timestamp)), 2, '0') || '.' ||
LPAD(EXTRACT(MONTH FROM cast('today' as timestamp)), 2, '0') || '.' ||
CAST(EXTRACT(YEAR FROM cast('today' as timestamp)) AS CHAR(4))
from RDB$DATABASE
а в процедуре всё по прежнему:
create or alter procedure ZM_LOG_ACCEPT (
N integer,
I integer)
returns (
D_DATE date,
COUNT_DOC integer)
as
declare variable DATE_START date;
declare variable DATE_END date;
begin
I = 0;
DATE_START = cast('today' as timestamp);
DATE_END = dateadd(1439 minute to cast('today' as timestamp));
while (I < N) do
begin
for select count(LG.KEYS),
lpad(extract(day from :DATE_START), 2, '0') || '.' || lpad(extract(month from :DATE_START), 2, '0') || '.' || cast(extract(year from :DATE_START) as char(4))
from log LG
left join DOCHEAD DH on cast(LG.KEYS as integer) = DH.ID_DOCHEAD
where LG.OBJECT = 'DOCHEAD' and
LG.MANAGER = 1874 and
LG.ACT = 'ACCEPT' and
LG.MODDATE between :DATE_START and :DATE_END and
DH.DOCHEAD_FILIALINDEX = 141

into :COUNT_DOC, D_DATE
do
suspend;
begin
I = I + 1;
DATE_START = dateadd(-1 day to :DATE_START);
DATE_END = dateadd(-1 day to :DATE_END);
end
end
end
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39446946
Фотография Gallemar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
стоп, гоню
переменная объявлена как date, а я пихаю в неё varchar
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39449558
Я использую следующее выражение:

DATEADD(DAY, DATEDIFF(DAY, CAST('1-1-1900' AS DATE), IN_DATE ), CAST('1-1-1900' AS DATE))
...
Рейтинг: 0 / 0
Как убрать время в date первого диалекта?
    #39449563
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно также использовать UDF fn_incdate() из rFunc.
c 0-мы параметрами.
она в любом случае отсекает время.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как убрать время в date первого диалекта?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]