Hvordan kan jeg konvertere den datostemple dato i DB2 du?
Du kan definere kolonner i DB2 databasetabellene i enten "date", "tid" eller "tidsstempel" formater å lagre tids relevant informasjon. Systemtidverdier inkluderer en dato etterfulgt av den tiden, definert seks-posisjon mikrosekund presisjon. Et tidsstempel er nyttig når det er avgjørende å vite nøyaktig når en hendelse inntreffer eller for å sortere data i påmeldingsrekkefølgen. Mange programmer bruker tidsstempler til å registrere inn- og oppdatere tider for revisjonsformål.
Bruksanvisning
Bruk Working Storage
1 Definerer et felt som bare inneholder 10 bytes. Dette eksemplet bruker COBOL syntaks i arbeidslagringsområdet. Den "01" er nivåindikatoren. "WS-DATE" er feltnavnet. "PIC" indikerer bilde leddet med "X (10)" som indikerer at feltet er et 10 byte streng.
01 WS-DATO PIC X (10).
2 Velg et tidsstempel kolonne fra en DB2-tabell ved hjelp av en strukturert spørrespråk (SQL) uttalelse. Skriv inn følgende SQL-setning i programmet:
SELECT TIMESTAMP_VALUE Fra TEST_TABLE
3 Flytt "timestamp_value" til kortere arbeids lagring feltet for å avkorte all informasjon etter datoen.
MOVE TIMESTAMP-verdi til WS-DATE.
Hvis tidsstempelet inneholder "2010-01-01-10.30.02.123456," WS-DATE lik "2010-01-01". Bruk WS-date "insert" eller "oppdatere" uttalelser, samt i "hvor" klausuler.
Konverter Stempel til en dato innen en SQL-setning
4 Konverter tidsstempel format til "date" format ved hjelp av "date" -funksjonen i "velg" statement.
VELG DATO (CURRENT TIMESTAMP) FRA SYSIBM.SYSDUMMY1
Denne setningen returnerer datoen del av dagens system tidsstempel. Den sysdummy1 tabell er en spesiell bord i minnet levert av IBM for systemfunksjoner som ikke krever en brukerdefinert tabell. Erstatte en brukerdefinert tabell og kolonnenavnet for å hente lagrede data.
Hvis dagens system timestamp er "2010-01-01-10.30.02.123456," resultatet av SQL-setningen er "2010-01-01"
5 Bruk "kastet" SQL funksjon for å konvertere et tidsstempel til en dato i "velg" SQL-setning. Den "kaste" statement formaterer en verdi basert på parametre innenfor parentesen. I dette eksemplet er verdien "gjeldende tidsstempel", og det er formatert ved hjelp av "date" format.
VELG CAST (CURRENT TIMESTAMP AS DATE) Fra SYSIBM.SYSDUMMY1
Hvis dagens system timestamp er "2010-01-01-10.30.02.123456," resultatet av SQL-setningen er "2010-01-01".
6 Kontroller at "cast" og "dato" funksjoner returnerer samme resultat ved å bruke dem både i en SQL-kommando.
VELG DATO (CURRENT TIMESTAMP),
CAST (CURRENT TIMESTAMP AS DATE)
Fra SYSIBM.SYSDUMMY1
Hint
- DB2 returnerer en feil hvis SQL-setningen forsøker å konvertere en verdi i et ugyldig format til en "date", "tid" eller "tidsstempel" format.