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

В таблице имеются записи следующие записи
time_stmt
-----------------------------
2006-08-26-16.24.30.601000
2006-08-26-16.25.02.362000
2006-08-26-16.30.40.656000
2006-08-26-16.31.03.462000
2006-08-26-16.31.40.912000
2006-08-26-16.32.03.628000
2006-08-26-16.33.05.138000
2006-08-26-16.33.08.363000
2006-08-26-16.34.08.838000

Нужно выбрать записи из этой таблицы.
select time_stmt from stmt where time_stmt > timestamp_format('2006-01-01 0:00:00','YYYY-MM-DD HH24:MI:SS') но увы запрос ругается на функцию в которой неправильный формат указан. Все работало до момента когда не была изменена системная дата, после чего все перестало работать.
Но есть другой вариант выборки данных:
select time_stmt from stmt where time_stmt > '2006-01-01 0:00:00'
вот только есть сомнения по этому поводу, на сколько коректен этот запрос?
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955417
warIord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
select time_stmt from stmt where time_stmt > '2006-01-01 0:00:00'

тогда уж так :

select time_stmt from stmt
where
CHAR(DATE(time_stmt), ISO ) > '2006-01-01'
AND
CHAR(TIME(time_stmt), JIS ) > '0:00:00'
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955499
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
warIord
Код: plaintext
select time_stmt from stmt where time_stmt > '2006-01-01 0:00:00'

тогда уж так :

select time_stmt from stmt
where
CHAR(DATE(time_stmt), ISO ) > '2006-01-01'
AND
CHAR(TIME(time_stmt), JIS ) > '0:00:00'

Ну уж не так. Контрпример - '2006-01-02 00:00:00'. Лично я чаще пользуюсь выражениями вида time_stmt > TIMESTAMP(DATE('2006-01-01'), TIME('00:00:00')), поскольку до долей секунд мне дела нет, но и time_stmt > '2006-01-01-00.00.00.000000' должно прокатить (при соответствующих языковых настройках на клиенте!).

YYYY-MM-DD понимается и при русских настройках, и, по-видимому, универсален.
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955587
gelort
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А насколько будет универсален запрос
Код: plaintext
select time_stmt from stmt time_stmt > TIMESTAMP(DATE('2006-01-01'), TIME('00:00:00')) 
при изменении системной даты или формата даты? Я так понимаю маску задать в функции date и time нельзя!?
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955589
warIord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Victor Metelitsa

ну и в чем проблема :

... > '00:00:00'

работает как часы, безо всяких ориентаций на системный формат даты

вы свели все к сравнению дат, я - к лексикографическому сравнению строк, результат один
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955620
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
warIord2 Victor Metelitsa

ну и в чем проблема :

... > '00:00:00'

работает как часы, безо всяких ориентаций на системный формат даты

вы свели все к сравнению дат, я - к лексикографическому сравнению строк, результат один

Я же привёл контрпример.

time_stmt > '2006-01-01 0:00:00' - это "все после полуночи 1-го января 2006", а у вас - "все после полуночи 1-го января 2006, исключая все последущие полуночи".
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955670
warIord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, согласен, разбиение на дату и время - логическая ошибка

select time_stmt from stmt
where CHAR(time_stmt, JIS ) > '2006-01-01 00:00:00'
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955675
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0000859.htm

Самое удобное, быть может, "A string of length 14 must be a string of digits that represents a valid date and time in the form yyyyxxddhhmmss, where yyyy is the year, xx is the month, dd is the day, hh is the hour, mm is the minute, and ss is the seconds", а 2006-08-26-16.25.02.362000 можно представить как (http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0000736.htm#labdur)
TIMESTAMP('20060826162502') + 362000 MICROSECONDS.

Форматы дат/времён в http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0008474.htm

Про системную дату я не понял - какое она имеет отношение к конверсии.
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955716
usev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor Metelitsa
YYYY-MM-DD понимается и при русских настройках, и, по-видимому, универсален.

Я тоже этот формат использую , при неявной конвертации, но пока не долго :)
Меня всё мучае вопрос - Этот формат такой же как в MS SQL Server 'YYYYMMDD' , который понимается всегда правильно и не зависит от настроек?
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33955764
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В функции DATE() требуется valid string representation of date, а они приведены в http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0008474.htm

В том числе и YYYY-MM-DD. А если учесть, что таких коллизий, какие есть с MM/DD/YYYY и DD/MM/YYYY (впрочем, второе не перечислено в списке valid), не имеется, то можно использовать без боязни.
...
Рейтинг: 0 / 0
TIMESTAMP_FORMAT
    #33956308
warIord
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
к слову, запрос странноват, время '2006-01-01 0:00:00' это уже 2006-01-01, поэтому логичнее включать полночь, тоесть >=

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


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