Формат, используемый по умолчанию для дат, определяется кодом территории базы данных DB2 (который можно указать во время создания базы данных). Например, моя база данных была создана с использованием территории = США. Поэтому формат даты выглядит следующим образом:
values current date
1
----------
05/30/2003
1 record(s) selected.
Вы можете получить код территории из базы данных CFG.
db2 get db cfg | egrep 'code|territory'
Database territory = US
Database code page = 1208
Database code set = UTF-8
Database country/region code = 1
То есть формат ММ/ДД/ГГГГ. Если вы хотите изменить формат, вы можете связать набор пакетов утилит db2, чтобы использовать другой формат даты.
Чтобы получить текущую дату, время и метку времени с помощью SQL (в основном дает представление о формате даты), обратитесь к соответствующим регистрам DB2: Таблица sysibm.sysdummy1 — это специальная таблица в памяти. таблица, которую можно использовать для обнаружения значения регистров DB2
db2 "SELECT current date FROM sysibm.sysdummy1 "
1
----------
06/02/2014
1 record(s) selected.
Функция DATE по-прежнему работает, даже если мы опустим кавычки в функции, но результат будет неправильным:
db2 "SELECT date(2001-09-22) FROM sysibm.sysdummy1 "
1
----------
05/24/0006
1 record(s) selected.
Когда функция DATE получает в качестве входных данных строку символов, она предполагает, что это допустимое символьное представление даты DB2, и преобразует ее соответствующим образом. Напротив, когда входные данные являются числовыми, функция предполагает, что они представляют количество дней минус один с начала текущей эры (то есть 0001-01-01). В приведенном выше запросе входными данными были 2001-09-22, что равно (2001-9)-22, что равно 1970 дням.
И если все вышеперечисленное применимо, приведенная ниже команда должна нормально работать для вашей проблемы.
SELECT * FROM table WHERE registrationdate > '10/01/2002';
02.06.2014