Avatar billede apsystem Nybegynder
06. december 2000 - 10:56 Der er 8 kommentarer og
1 løsning

typen \"date\"

Vi sidder med et problem ang datatypen \"date\" : Hvordan finder vi tidsdelen?
hvad er SQLsyntaksen for en datatype til at indeholde et klokkeslet??
bemærk: det er ikke systemtiden men et brugerindtastet klokkeslet.
Avatar billede pnielsen Nybegynder
06. december 2000 - 11:10 #1
Du bestemmer selv :)

måske det her kan give dig svaret:
    SVRMGR> select to_char(sysdate,\'dd.mm.yyyy\') date1,
        2>        to_char(sysdate,\'yyyy/mm/dd\') date2
        3> from dual;
    DATE1      DATE2
    ---------- ----------
    27.09.1999 1999/09/27

eller:

    SVRMGR> select * from nls_session_parameters
        2> where parameter=\'NLS_DATE_FORMAT\';
    PARAMETER                      VALUE
    ------------------------------ ------------------------------
    NLS_DATE_FORMAT                mm/dd/yyyy

    SVRMGR> set datewidth 15
    Datewidth                      15

    SVRMGR> select sysdate from dual;
    SYSDATE
    ---------------
    09/27/1999

så hvis du sørger for at din NLS_DATE_FORMAT er sat som du vil have det... :)
Avatar billede kasseper Nybegynder
06. december 2000 - 11:11 #2
UPDATE MyTable
Set Date = 12:00:30
Where ID = 1;

Skulle da kunne gøre det. Den generelle holdning til seperatorer i date typen er - mellem dato-delene \' \'(læses blanktegn) mellem dato og klokkeslet og : mellem klokkeslets delene...
Avatar billede plinnet Nybegynder
06. december 2000 - 11:13 #3
Hvis du henter et tidspunkt i databasen via et recordset og skal have det udskrevet gør du således:

Tidspunkt = FormatDateTime(RS(\"Tid\"), vbShortTime)

Hvis du skal gemme i databasen via et recordset og med metoden addnew kan du gøre det således:

RS(\"Tid\") = FormatDateTime(CDate(Request.Form(\"tiden\"), vbshortTime))

Håber det hjælper lidt på vej.

PL

Avatar billede apsystem Nybegynder
06. december 2000 - 11:19 #4
tak, kasseper, det ser lovende ud .... vi tester lige inden du får pointene :-)
Avatar billede pnielsen Nybegynder
06. december 2000 - 11:21 #5
Undskyld... du spørger om tidsformat :)
sæt din
      nls_date_format = \'YYYY-MM-DD:HH24:MI:SS\' i init.ora.
eller
Alter session set nls_date_format = \'YYYY-MM-DD:HH24:MI:SS\'; 
i din session     

Select to_char(time1,\'YYYY-MM-DD:HH24:MI:SS\') from test1;
giver :

      1998-07-21:00:00:00

f.eks.

create table test1 (time1 date);
insert into test1 values (sysdate);
select * from test1;

      Giver dig:
      1998-07-21:10:07:34

prøv så:
 
update test1
  set time1 = (trunc(time1));

giver:
      1998-07-21:00:00:00

Du skal så bare sætte din tid ind i stedet... ok ?
Avatar billede apsystem Nybegynder
06. december 2000 - 11:47 #6
ok, pnielsen.... vi tester :-)
Avatar billede apsystem Nybegynder
06. december 2000 - 11:59 #7
pnielsen >> når vi ændrer datoformatet kan man så definere 2 forskellige formater? når vi feks har en attribut med en dato og en anden attribut med et klokkeslet??
Avatar billede pnielsen Nybegynder
06. december 2000 - 12:47 #8
Alter session set nls_date_format sætter formatet som du ønsker, i den enkelte session.

Men ellers kan du i din insert gøre sådan:
INSERT INTO bonus (bonus_date)
  SELECT TO_DATE(
    \'January 15, 1989, 11:00 A.M.\',
    \'Month dd, YYYY, HH:MI A.M.\',
    \'NLS_DATE_LANGUAGE = American\')
    FROM DUAL;

ok?
Avatar billede apsystem Nybegynder
06. december 2000 - 13:16 #9
PNielsen >> TAK FOR HJÆLPEN
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester