HDSoftware Skrevet 11. mai 2007 Del Skrevet 11. mai 2007 Heisan Jeg lurer på noe så enkelt som å få MSSQL2005 til å automatisk sette dagens dato på et feil i en ny record. Ser det er noe som heter Computed Column Specification, men setter jeg TODAY der så får jeg bare feilmeldinger. Det samme får jeg om jeg prøver det samme i Default Value. Noen tips Lenke til kommentar
HDSoftware Skrevet 11. mai 2007 Forfatter Del Skrevet 11. mai 2007 ÆHHH! Dårlig gjort Hvorfor kan det ikke være enb standard måte å hente en dato på? Hvorfor må SQL bruke GETDATE() og ikke Today() so alle andre språg i hvertfall jeg kjenner. Dustete!! Lenke til kommentar
kaffenils Skrevet 11. mai 2007 Del Skrevet 11. mai 2007 Verken TODAY eller GETDATE følger noen SQL-standard (sjekket bare SQL-92) Bruk CURRENT_TIMESTAMP i stedet. Den er definert av SQL-92. Lenke til kommentar
ofredstie Skrevet 12. mai 2007 Del Skrevet 12. mai 2007 Bruk TIMESTAMP datatypen, f.eks.: CREATE TABLE feilmelding ( feilmelding_id INT NOT NULL, feilmelding_navn NVARCHAR(30) NOT NULL, feilmelding_beskrivelse NVARCHAR(200) NOT NULL, feilmelding_tid TIMESTAMP NOT NULL, CONSTRAINT feilmelding_pk PRIMARY KEY (feilmelding_id) ); Når du da gjør en insert i denne tabellen så vil klokkeslettet (og dato) bli lagret. F.eks.: INSERT INTO feilmelding (feilmelding_id, feilmelding_navn, feilmelding_beskrivelse) VALUES (1, 'Error 1234', 'Ukjent Windows feil; hiv pcen din og kjøp deg en Mac.'); Timestamp Syntax (MSSQL Server 2005) Må påpeke at hvis det blir gjort en update av f.eks. 'feilmelding_navn' så vil Timestamp også bli oppdatert. Lenke til kommentar
kaffenils Skrevet 13. mai 2007 Del Skrevet 13. mai 2007 Datatypen timestamp i SQL Server 2005 har nok ingenting med dato og klokkeslett å gjøre selv om SQL-2003 standarden definerer det som tid og klokkeslett. Definisjonen for timestamp står i linken du la ved. Lenke til kommentar
ofredstie Skrevet 14. mai 2007 Del Skrevet 14. mai 2007 Ahh.. ser det nå.. beklager feilen. Men hvis du bytter ut 'feilmelding_tid TIMESTAMP NOT NULL,' med 'feilmelding_tid DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP' så vil det funke. Ser også at en Update vil ikke endre tiden inni 'feilmelding_tid'. Oppdatering av tiden kan gjøres slik: UPDATE feilmelding SET feilmelding_tid = GETDATE() WHERE feilmelding_id = 1; Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå