Here is a basic script you can play with. (no error handling, no force user,
no quiesce, ...)
This should change date/time formats for all users using the clp packages
you're binding.
Change the set commands and modify it to your needs.
DATETIME LOC Use the date and time format in local form associated with
the territory code of the database.
REM RUN FROM DB2 COMMAND WINDOW
CLS
REM DATETIME DEF EUR ISO JIS LOC USA
REM 0 = Format associated with the territory code of the client
REM 1 = USA date and time
REM 2 = EUR date, EUR time
REM 3 = ISO date, ISO time
REM 4 = JIS date, JIS time
REM 5 = LOCAL date, LOCAL time
REM -- DATABASE
SET DB=SAMPLE
REM -- USER FOR EXECUTING BIND STATEMENTS
SET BINDUSER=
SET BINDUSING=
REM -- USER FOR EXECUTING TEST SQL STATEMENTS
SET DBUSER=
SET DBUSING=
REM --
SET BND01DATETIME=D EF
SET BND02DATETIME=L OC
SET BND03DATETIME=I SO
PUSHD %DB2PATH%\BND
DB2 CONNECT RESET
DB2 TERMINATE
DB2 CONNECT TO %DB% USER %BINDUSER% USING %BINDUSING%
FOR /F "TOKENS=1 DELIMS=+ " %I IN ('DIR DB2clp*.bnd /B') DO DB2 BIND %I
ACTION REPLACE BLOCKING ALL DATETIME %BND01DATETIME% DEGREE ANY DYNAMICRULES
RUN INSERT BUF SQLERROR CONTINUE
DB2 COMMIT
DB2 TERMINATE
DB2 CONNECT TO %DB% USER %DBUSER% USING %DBUSING%
DB2 LIST PACKAGES FOR ALL | FINDSTR /I "PACKAGE --- SQLC2E03"
DB2 VALUES CURRENT DATE
POPD
PUSHD %DB2PATH%\BND
DB2 CONNECT RESET
DB2 TERMINATE
DB2 CONNECT TO %DB% USER %BINDUSER% USING %BINDUSING%
FOR /F "TOKENS=1 DELIMS=+ " %I IN ('DIR DB2clp*.bnd /B') DO DB2 BIND %I
ACTION REPLACE BLOCKING ALL DATETIME %BND02DATETIME% DEGREE ANY DYNAMICRULES
RUN INSERT BUF SQLERROR CONTINUE
DB2 COMMIT
DB2 TERMINATE
DB2 CONNECT TO %DB% USER %DBUSER% USING %DBUSING%
DB2 LIST PACKAGES FOR ALL | FINDSTR /I "PACKAGE --- SQLC2E03"
DB2 VALUES CURRENT DATE
POPD
PUSHD %DB2PATH%\BND
DB2 CONNECT RESET
DB2 TERMINATE
DB2 CONNECT TO %DB% USER %BINDUSER% USING %BINDUSING%
FOR /F "TOKENS=1 DELIMS=+ " %I IN ('DIR DB2clp*.bnd /B') DO DB2 BIND %I
ACTION REPLACE BLOCKING ALL DATETIME %BND03DATETIME% DEGREE ANY DYNAMICRULES
RUN INSERT BUF SQLERROR CONTINUE
DB2 COMMIT
DB2 TERMINATE
DB2 CONNECT TO %DB% USER %DBUSER% USING %DBUSING%
DB2 LIST PACKAGES FOR ALL | FINDSTR /I "PACKAGE --- SQLC2E03"
DB2 VALUES CURRENT DATE
POPD
PM
"Tatiana Zadiraka" <ta*@aleksin.tu la.net> a écrit dans le message de
news:86******** *************** **@posting.goog le.com...
I use DB2 8.1 with FixPack 5. In command line for sql I get all DATE
columns only in MM-DD-YYYY format. Of course, DATE('20-12-2003') gives
me an error
SQL0181N The string representation of a datetime value is out of
range.
SQLSTATE=22007
My db config is:
Database territory = RU
Database code page = 1251
Database code set = 1251
Database country/region code = 7
How to get dates in local format?