powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с запросом
11 сообщений из 11, страница 1 из 1
Помогите с запросом
    #34612999
ГОСТЬ_в_ДБ2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!

Написан скрипт для создания вьюз на оракле и в запросе используются to_date и to_char функции.

Код: plaintext
1.
2.
3.
create or replace view orcl_data 
(dbname,aliasname,timestamp,datewithminutes,datewithhours, datecolumn) as 
select a.dbname,a.aliasname,b.timestamp, to_date(to_char(b.timestamp,'YYYY-MM-DD HH24:MI:SS'),'YYYY-MM-DD HH24:MI:SS') as datewithminutes, to_date(to_char(b.timestamp,'YYYY-MM-DD HH24'),'YYYY-MM-DD HH24') as datewithhours,to_date(to_char(b.timestamp,'YYYY-MM-DD'),'YYYY-MM-DD') as datecolumn from oraaudit b,databases a where returncode> 0  and a.dbid=b.dbid;

В оракле я могу задать маску YYYY-MM-DD HH24 и все сработает результат вернется = дата + часы, но когда пытаюсь выполнить в дб2 возвращается ошибка. Оказывается такое в дб2 не прокатывает, нужно указывать всю маску YYYY-MM-DD HH24:MI:SS. Как можно обойти это место?
...
Рейтинг: 0 / 0
Помогите с запросом
    #34613685
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.

Я правильно понял, что вы хотите получить из исходного timestamp:
- timestamp только с датой и часом
- timestamp только с датой
и т.д.

Так?
...
Рейтинг: 0 / 0
Помогите с запросом
    #34613990
ГОСТЬ_в_ДБ2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЗдравствуйте.

Я правильно понял, что вы хотите получить из исходного timestamp:
- timestamp только с датой и часом
- timestamp только с датой
и т.д.

Так?

Да, вы совершенно правы.
...
Рейтинг: 0 / 0
Помогите с запросом
    #34614365
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для обрезания всего, кроме часов:
Код: plaintext
1.
2.
3.
4.
5.
values 
  current timestamp 
- minute(current timestamp) minutes
- second(current timestamp) seconds
- microsecond(current timestamp) microseconds

Для обрезания всего, кроме часов и минут:
Код: plaintext
1.
2.
3.
4.
values 
  current timestamp 
- second(current timestamp) seconds
- microsecond(current timestamp) microseconds
Вместо current timestamp вставьте любой timestamp.
...
Рейтинг: 0 / 0
Помогите с запросом
    #34619572
ГОСТЬ_в_ДБ2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторДля обрезания всего, кроме часов:
values
current timestamp
- minute(current timestamp) minutes
- second(current timestamp) seconds
- microsecond(current timestamp) microseconds

minute и second это скалярные функции которые возвращают минуты и секунды из аргумента time, timestamp, time duration, timestamp duration, or a valid character string representation of a time or timestamp.

Мне чтобы получить дату с часами нужно использовать конкатенацию в запросе?

Вот что у меня получилось:
Код: plaintext
select CHAR(date(current timestamp))||' '||CHAR(hour(current timestamp))  from sysibm.sysdummy1
...
Рейтинг: 0 / 0
Помогите с запросом
    #34619633
xz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты не пробовал выполнить запросы которые тебе Марк указал?
...
Рейтинг: 0 / 0
Помогите с запросом
    #34619744
ГОСТЬ_в_ДБ2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторТы не пробовал выполнить запросы которые тебе Марк указал?

А ты там видешь запросы?

Если я буду использовать minute(current timestamp) то вернетяся только минута из аргумента.
...
Рейтинг: 0 / 0
Помогите с запросом
    #34619820
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMHO, глупо переписывать запросы один в один, тем более не понимая зачем это нужно.

Моежет это подойдет

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
db2 values int(current date)* 100  + int(current time)/ 10000 

 1 
-----------
  2007062612 

   1  record(s) selected.
...
Рейтинг: 0 / 0
Помогите с запросом
    #34620995
ГОСТЬ_в_ДБ2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответы.

приходится переписывать запросы для db2, поскольку уже все работает для Oracle и PG. Согласен что самое оптимально использовать числа и непрерводить в char а затем опять в date. Хочеться пока написать для дб2 правильно, затем исправить для Oracle и PG.

Я знаю что в Oracle есть функция trunc ( date, [ format ] ). Есть что то подобное для DB2?
...
Рейтинг: 0 / 0
Помогите с запросом
    #34625875
ГОСТЬ_в_ДБ2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если использовать такую конструкцию для обрезания минут и секунд...

Код: plaintext
values  timestamp_format((char(current date)||' '||rtrim(CHAR(hour(current timestamp)))||':00:00'), 'YYYY-MM-DD HH24:MI:SS')

Есть другие способы?
...
Рейтинг: 0 / 0
Помогите с запросом
    #34626129
тлгдшмлщ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
http://www.ibm.com/developerworks/db2/library/samples/db2/0205udfs

Только производительность не забудь проверить
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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